【发布时间】:2016-05-25 00:10:53
【问题描述】:
假设,我有一个 Django 表单 - XYZ,其中包含字段 A、B、C。字段 B 是用户名字段,当特定的用户名已经存在时,会发生验证错误并返回一条消息。除此之外,我想向模板发送一些自动建议的用户名字典。 据我了解,我只能发送字段错误和非字段错误。
def clean_B(self):
B = self.cleaned_data['B']
if address.objects.filter(B=B).exists():
raise forms.ValidationError("Username already exists")
return B
我尝试使用 Form.add_error() 添加另一个错误,但 Django 不允许在每个字段的单个字典中出现多个错误或 Non_field 错误。
我该怎么做?
谢谢!
【问题讨论】:
-
为什么不能将它添加到当前
ValidationError的消息中?你可以对cleaned_data做任何你想做的事情来产生一些建议,然后做:raise forms.ValidationError("Username already exists, please try foo, bar or baz instead")。 -
我想让它更加用户友好(比如 Gmail 自动建议)。用户只需点击“foo”/“bar”,即可填写用户名字段!!错误信息不同,建议不同!!为此,我需要列表中的自动建议。
标签: django django-forms django-templates autosuggest validationerror