我有一个 Django 模型中的项目列表,我希望能够设置它们的顺序。基本上是一个链表。
class List(models.Model):
name = models.CharField(max_length=255)
class Item(models.Model):
list = models.ForeignKey(List)
position = models.PositiveIntegerField()
data = models.AnyField()
class Meta:
unique_together = ('list', 'position')
ordering = ['position']
这是我心目中的模型。对于 List 中的每个 ListItem,列表位置必须是唯一的,但也必须没有间隙(例如,删除第 4 项不会导致位置序列 [1, 2, 3, 5, 6]。