python 按自定义索引排序的最佳方式

gijlo24d  于 2023-05-05  发布在  Python
关注(0)|答案(1)|浏览(117)

我在考虑按索引列排序的最佳方法。我有模型:

class ProductCategory(models.Model):
    name = models.CharField(_("Category name"), max_length=200)
    description = models.TextField()
    index = models.IntegerField(_("Index order"), default=0)

    def __str__(self):
        return self.name

我可以在模型级别设置索引吗?在这种情况下,我想让用户设置菜单中的订单类别。

cgyqldqp

cgyqldqp1#

我可以在模型级别设置索引吗?
您已经创建了字段索引。你也可以使用**db_index=True**参数[Django-doc]添加一个数据库索引,以便于对索引进行排序和过滤:

class ProductCategory(models.Model):
    name = models.CharField(_("Category name"), max_length=200)
    description = models.TextField()
    index = models.IntegerField(_("Index order"), default=0, db_index=True)

    def __str__(self):
        return self.name

你也可以通过指定**ordering**选项[Django-doc]来指定模型默认按index排序:

class ProductCategory(models.Model):
    name = models.CharField(_("Category name"), max_length=200)
    description = models.TextField()
    index = models.IntegerField(_("Index order"), default=0, db_index=True)

    class Meta:
        ordering = ['index']

    def __str__(self):
        return self.name
  • 除非 * 您显式指定了排序(例如ProductCategory.objects.order_by('name')),否则它将按index排序。

相关问题