gpt4 book ai didi

python - 用于对唯一字段进行并发操作的 Django 表单完整性错误

转载 作者:太空狗 更新时间:2023-10-30 00:19:34 24 4
gpt4 key购买 nike

我注意到一个问题,我不知道这是一个真正的问题还是我的设计有误。

我有一个模型:

class A(Model):
name = CharField(unique=True, max_length=255)

和一个链接到 A 的模型,这个模型有一个 clean_name() 方法,它检查该字段在数据库中是否是唯一的(忽略默认情况下模型已经这样做的事实,我在这里的例子中指定了这个).

在 View 中如果我这样做了

o = form.save(commit=False)
# xyz
o.save()

并且在 #xyz 我有另一个客户端插入一个具有相同 name 字段值的 A 对象,o.save() 触发器Integrityerror 异常,正确防止重复记录被插入。

我想知道的是如何处理这些情况,我是否应该用一个 try/except block 包装那个 o.save() 然后填充指定选择另一个的表单上的错误字段名称值?

这是每个人都应该遇到的常见情况,而且该解决方案很糟糕,所以我认为我做的事情非常错误。

最佳答案

我怀疑可能是这种情况:

仅当在 xx_clean() 中设置标志时,模型表单才提供唯一性验证。如果您用自己的(如您所用)覆盖 clean,则需要调用父类(super class)的 clean()。参见 overwriting the clean method .

关于python - 用于对唯一字段进行并发操作的 Django 表单完整性错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23812237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com