假设,我想构建一个简单的TODO-app。我想创建待办事项,也可以手动重新排列项目。
我做了以下模型:
class Item(models.Model):
title = models.CharField(max_length=500)
现在,我需要添加一个特殊字段,让我们称之为order
,以保持自定义排序。它应该是唯一的,对于任何新记录都应该更大,所以我尝试制作AutoField
。
class Item(models.Model):
title = models.CharField(max_length=500)
order = models.AutoField(primary_key=False)
但事实证明,Django并不支持单个模型的几个自动字段。
我想,应该可以编写自定义原始SQL代码并直接使用Postgres序列,但它看起来真的很难看,而且我不想为这种简单的功能编写特定于DB的代码。
所以,这是一个问题:在Django中实现项目排序的常用方法是什么?这听起来是一个非常普遍的要求,而且,我认为应该是一种简单的方法。