Скажем, у меня есть форма 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")
. - person Shang Wang   schedule 14.02.2016