Python 在Django模型的有序列表中插入元素

Python 在Django模型的有序列表中插入元素,python,sql,django,Python,Sql,Django,我试图弄清楚如何在Django模型中创建元素的有序列表 我试图扩展用户模型,向用户添加一个军衔(比如军衔)。我想对每个等级的用户进行排序/过滤,并存储等级的svg图形表示。我想使用排名级别在用户之间建立层次结构,因此排名级别必须是唯一的。最后,如果将来发生变化,我希望能够插入或删除排名 为此,我创建了一个列组表,如下所示: 等级(Models.model): rank=models.CharField(最大长度=30) 级别=模型。整型字段(唯一=真) image=models.ImageFie

我试图弄清楚如何在Django模型中创建元素的有序列表

我试图扩展用户模型,向用户添加一个军衔(比如军衔)。我想对每个等级的用户进行排序/过滤,并存储等级的svg图形表示。我想使用排名级别在用户之间建立层次结构,因此排名级别必须是唯一的。最后,如果将来发生变化,我希望能够插入或删除排名

为此,我创建了一个列组表,如下所示:

等级(Models.model):
rank=models.CharField(最大长度=30)
级别=模型。整型字段(唯一=真)
image=models.ImageField()
我想要的是,如果我在2个已经存在的等级之间插入一个新等级,那么等级字段能够自我更新

例如,假设我创建了以下列组:

id[pk]|等级|级别|图像

1 |士兵| 1 |士兵.svg

2 |军士| 2 |军士

然后,我想在第2级插入“下士”,以便该表如下所示:

id[pk]|等级|级别|图像

1 |士兵| 1 |士兵.svg

3 |下士| 2 |下士

2 |军士| 3 |军士

这里,通过在
2级插入
下士
条目,
中士
级自动将自己重新编号为
3
。如果我删除
soldier
条目,我希望该表如下所示:

id[pk]|等级|级别|图像

3 |下士| 1 |下士

2 |军士| 2 |军士

其中
下士
中士
级别都将自己重新编号为
1
2

我不介意必须指定新等级的级别,但我希望较高等级在插入或删除时自动重新排序。我不认为将级别作为主键(PK)是一个好主意,因为如果我更新该表,我不一定希望与用户的关系发生变化。我不希望该表增长太多,因此操作不必非常优化

答案可能非常简单或显而易见,但我对Django/python/databases开发非常陌生。我已经阅读了django文档,在谷歌和这个网站上搜索了答案,但我可以找到我要找的东西


亲切的问候

在数据库中需要这些列组是否有特殊原因?您最好使用枚举,具体取决于此模型的使用方式。此外,
blank=False
是默认值,因此无需添加该值。@我希望web应用程序的最终用户可以编辑列组,因为它们(尽管很少)可能会更改。此外,我正在尝试构建一个平台,以适应不同军衔的不同军事要素(海军、陆军、空军司令部等)。我真的不知道如何使用枚举来存储该信息并使其保持可编辑状态。@Monica还感谢blank=false提示,我将编辑我的代码!那样的话,你是对的。对用户定义的数据使用枚举不是一个好主意。在数据库中需要这些列组有什么特别的原因吗?您最好使用枚举,具体取决于此模型的使用方式。此外,
blank=False
是默认值,因此无需添加该值。@我希望web应用程序的最终用户可以编辑列组,因为它们(尽管很少)可能会更改。此外,我正在尝试构建一个平台,以适应不同军衔的不同军事要素(海军、陆军、空军司令部等)。我真的不知道如何使用枚举来存储该信息并使其保持可编辑状态。@Monica还感谢blank=false提示,我将编辑我的代码!那样的话,你是对的。对用户定义的数据使用枚举不是一个好主意。