順序を設定できるようにしたい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] にはなりません。