python - 在 Django 模型的有序列表中插入元素
问题描述
我试图弄清楚如何在 Django 模型中创建有序的元素列表。
我正在尝试扩展 User 模型以向用户添加军衔(如军衔)。我想按排名对用户进行排序/过滤,并且我想存储一个排名的 svg 图形表示。我想使用排名级别在用户之间建立层次结构,因此排名级别必须是唯一的。最后,如果将来发生变化,我希望能够插入或删除排名。
为此,我为排名创建了一个表格,如下所示:
class Rank(Models.model):
rank = models.CharField(max_length=30)
level = models.IntegerField(unique=True)
image = models.ImageField()
如果我在 2 个已经存在的等级之间插入一个新等级,我想要的是等级字段能够自我更新。
例如,假设我创建了以下排名:
编号 [pk] | 排名 | 水平 | 图片
1 | 士兵| 高分辨率照片| CLIPARTO 1 | 士兵.svg
2 | 中士 | 2 | sergent.svg
然后我想在第 2 级插入“下士”,以便表格如下所示:
编号 [pk] | 排名 | 水平 | 图片
1 | 士兵| 高分辨率照片| CLIPARTO 1 | 士兵.svg
3 | 下士 | 2 | 下士.svg
2 | 中士 | 3 | sergent.svg
在这里,通过在层级插入corporal
条目,2
层级sergent
自动将自身重新编号为3
。如果我删除该soldier
条目,我希望表格如下所示:
编号 [pk] | 排名 | 水平 | 图片
3 | 下士 | 1 | 下士.svg
2 | 中士 | 2 | sergent.svg
其中corporal
和sergent
级别重新编号为1
和2
。
我不介意必须指定新等级的级别,但我希望更高等级在插入或删除时自动重新排序。我不认为将级别作为主键 (PK) 是一个好主意,因为如果我更新该表,我不一定希望与用户的关系发生变化。我预计该表不会增长太多,因此操作不必非常优化。
答案可能非常简单或显而易见,但我对 Django/python/databases 开发非常陌生。我已经阅读了 django 文档,并在谷歌和这个网站上搜索了答案,但我可以找到我正在寻找的东西。
亲切的问候!
解决方案
推荐阅读
- c++ - 使用 ODBC 读取/写入 excel
- angular - 数据出现在 API 调用中,但在调用时未定义
- java - Spring Boot 应用程序日志显示 iRAv2 格式日志
- json - 如何在我的代码中找到 TypeError 的位置?
- javascript - D3 线性刻度 NaN
- excel - 每张 Excel 行数
- tableau-api - 用户可以隐藏 Tableau 中的列吗?
- xml - 使用 XSLT 1.0 转换 Xml
- powerbi - 在 PowerBI 中显示不包括周末的前几天销售额
- java - recyclerView.setAdapter(适配器); 不工作