django - unique=True give 已经存在!即使交换 2 个对象的值
问题描述
为了以特定顺序显示对象(成员),我制作了字段order
:
order = models.IntegerField(unique=True,null=True,blank=True)
这样我就可以.order_by('order')
得到所需的订单。
在 Django Admin 中,表只有order
0,1 的 2 个对象。如果我想用 1,0 交换它,我会得到一个错误
关于我们这个订单已经存在
为了便于使用 Django admin,有没有更好的方法来实现上述
解决方案
您可以删除unique=True
和添加自定义操作以重新排序对象。在这种形式中,Django 管理员将每个对象应用到单独的事务中,并导致此错误。您可以覆盖管理类的更新功能,并像这样在批量更新事务中进行所有更改。但我不推荐它。因为您将来可能会出错并想要编辑其他字段,而这一行会产生错误。
推荐阅读
- python - 将 ScrollBar 添加到标签窗口
- swift - 如何在领域的排序功能中对字符串类型的“日期”进行排序
- java - 如果用户调整滚动窗格的大小,如何动态地向嵌入在滚动窗格中的流窗格添加间隙
- ios - 为什么在 IOS 上,虚拟键盘中的上一个和下一个焦点按钮在第一次聚焦输入时不显示?
- wpf - WPF Listview - 根据内容更改行的格式
- c# - 如何将 F10 键标记为在 CefSharp for WPF 中处理?
- wordpress - 我无法在 wordpress 中选择 id 或带有 javascript 的类
- excel - 当 if 语句用于打开其他工作簿时,ElseIf 函数不起作用
- javascript - 如何在javascript中加入这些值?
- python - 如果使用python连续出现至少2次,则将特定字符替换为空值