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

2024-06-25 06:32:23 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

class Rank(Models.model):
    rank = models.CharField(max_length=30)
    level = models.IntegerField(unique=True)
    image = models.ImageField()

我想要的是,如果我在2个已经存在的等级之间插入一个新等级,那么等级字段能够自我更新

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

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

1 |士兵| 1 |士兵.svg

2 |军士| 2 |军士

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

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

1 |士兵| 1 |士兵.svg

3 |下士| 2 |下士

2 |军士| 3 |军士

这里,通过在2级别插入corporal条目,sergent级别自动将自身重新编号为3。如果我删除了soldier项,那么我希望该表如下所示:

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

3 |下士| 1 |下士

2 |军士| 2 |军士

其中corporalsergent级别将自己重新编号为12

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

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

亲切的问候


Tags: django用户svg模型图像id排序models