gpt4 book ai didi

django - Django唯一约束+表单错误

转载 作者:行者123 更新时间:2023-12-04 22:25:26 24 4
gpt4 key购买 nike

我在自己的网站上重复发布时遇到了一些问题。我认为跨所有相关字段的简单唯一约束将在数据库级别解决此问题,但随后它只会为用户带来令人讨厌的错误页面。有没有办法我可以把它变成漂亮的表格错误呢?像non_field_error一样?还是我应该采取什么方法?

最佳答案

也许这样的事情可以帮助您:

class YourForm(forms.Form):
# Everything as before.
...

def clean(self):
cleaned_data = self.cleaned_data
your_unique_key = cleaned_data['your_unique_key']

if your_unique_key and YourModel.objects.get(your_unique_key=your_unique_key):
raise forms.ValidationError("not unique")

# Always return the full collection of cleaned data.
return cleaned_data
clean()方法将允许您访问表单的所有字段,如果您具有组合的唯一键,这可能会很有用。否则,(很短)的 clean_your_unique_key()可能更适合您。

并且请注意,在极少数情况下(竞赛条件),表单验证可能不会报告重复的条目(但数据库引擎会报告该条目)。但是对于大多数应用程序,所提供的示例将是更容易且更易于维护的示例,因此我仍然推荐这种方法。

关于django - Django唯一约束+表单错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3473165/

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