[解決済み] すでに検証済みのフォームにエラーを注入する?
2022-10-22 09:03:26
質問
私の
form.Form
がユーザの入力値を検証した後、私はそれを別の (外部の) プロセスに渡してさらに処理させます。この外部プロセスでは、値の中にさらなるエラーを見つけることができる可能性があります。
これらのエラーをすでに検証されたフォームに注入して、通常のフォームエラー表示方法によって表示できるようにする方法はありますか(または、より良い代替アプローチがありますか)?
1つの提案は、フォームの検証に外部処理を含めることでしたが、外部処理は単に検証するよりも多くのことを行うので、理想的ではありません。
どのように解決するのですか?
Form._errors
は標準的な辞書と同じように扱うことができます。良い形式と考えられているのは
ErrorList
クラスを使用し、エラーを既存のリストに追加するのが良い形とされています。
from django.forms.utils import ErrorList
errors = form._errors.setdefault("myfield", ErrorList())
errors.append(u"My error here")
また、フィールドエラー以外を追加したい場合は
django.forms.forms.NON_FIELD_ERRORS
(デフォルトは
"__all__"
) の代わりに
"myfield"
.
関連
-
[解決済み] Django vs. Model View Controller [終了しました]。
-
[解決済み] Django のフォームで、あるフィールドを編集できないように readonly (または disabled) にするにはどうしたらいいですか?
-
[解決済み] (13: Permission denied) 上流:[nginx]に接続中。
-
[解決済み】Djangoはデフォルトのフォーム値を設定する
-
[解決済み] Djangoです。文字列からモデルを取得する?
-
[解決済み] Django Southを使用して移行履歴をリセットするための推奨される方法は何ですか?
-
[解決済み] Djangoで複数のfilter()を連鎖させる、これはバグ?
-
[解決済み] dbなしのdjangoユニットテスト
-
[解決済み] RESTful API のトークン認証:トークンは定期的に変更する必要がありますか?
-
[解決済み] Django の DoesNotExist 例外はどのようにインポートしますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Djangoは、フォームを送信するときに403エラーに遭遇しました。CSRF 検証に失敗しました。
-
Django でチェックボックスの値を取得する方法
-
ImproperlyConfiguredです。INSTALLED_APPS の設定を要求されたが、設定されていない
-
[解決済み] django の OneToOneField と ForeignKey の違いは何ですか?
-
[解決済み] (13: Permission denied) 上流:[nginx]に接続中。
-
[解決済み] Django のモデルで電話番号を保存する最良の方法は何ですか?
-
[解決済み] Django ManyToMany filter()
-
[解決済み] Djangoのクッキー、どうすれば設定できますか?
-
[解決済み] Django の {% url %} テンプレートタグでクエリパラメータを渡すことは可能でしょうか?
-
[解決済み] Django admin: データベースフィールドを持たないカスタム list_display フィールドの1つでソートする方法