13

フォームのフィールド エラーを clean() に設定しようとしていますが、現在行っていることは次のとおりです。

self._errors['address'] = self._errors.get('address', ErrorList())
self._errors['address'].append(_(u'Please specify an address.'))

これを行うためのより良い、可能であればより短い方法はありますか?

4

3 に答える 3

14

Django 1.7 の新機能はForm.add_error( field, message ).

https://docs.djangoproject.com/en/dev/ref/forms/api/#django.forms.Form.add_error

于 2014-10-28T23:44:03.963 に答える
8

多分これはあなたを助けるでしょう。一般的には、クリーンをオーバーライドし、関数内で次のことを行うことができます

フォーム固有のエラーを発生させたい場合は、.

self._errors["field"] = ErrorList([u"Error"])

これは、エラークラスを確実に取得することです

フィールド以外のエラーがある場合は、次のような検証エラーを簡単に発生させることができます

raise forms.ValidationError(_("Error"))

お役に立てれば。

于 2013-03-28T09:58:08.373 に答える
6
  1. 標準的な方法はraise ValidationError(message).
  2. あなたの場合、フィールド固有の検証をclean_<fieldname>()メソッドに移動clean_addressします。 ValidationErrorこのようなメソッドで発生したエラー メッセージは、特定のフィールドに添付されます。から提起されたclean()ものは、一般的にモデルに起因します。
于 2012-04-01T21:54:45.533 に答える