私は、Djangoモデルの特定のフィールドのための独自の検証ルーチンを定義したいと思います。 管理フォームにエラーメッセージを表示したいのですが、エンティティが独自のPythonコードで保存されている場合も同じ検証が必要です。 DRYの原則を破ることなくこれを行う方法はありますか?モデルと管理者のDjangoフィールド検証?
10
A
答えて
8
個々のフィールドを検証する場合はwrite a validatorとし、モデルフィールドに追加します。
モデルのfull_clean
メソッドが呼び出されると、フィールドのバリデータが実行されます。モデルフォームが検証されると(Django管理者を含む)、実行されますが、モデルインスタンスの保存時には自動的に実行されません。full_clean
をPythonコードで手動で呼び出す必要があります。
m = MyModel(x=20)
m.full_clean() # may raise ValidationError
m.save()
は、モデルが保存されるたびに実行するためにバリデータを強制したい場合は、saveメソッドをオーバーライドすることができ、そこfull_clean
を呼び出します。これにより、モデルフォームとdjango管理者を使用しているときに、検証が2回実行されることに注意してください。
関連する問題
- 1. カスタム検証Django管理者不明フィールド
- 2. Django管理者のJavascript検証
- 3. Django管理者とモデルの削除
- 4. Djangoモデルのオブジェクト、管理者とjavascriptファイル
- 5. Djangoのモデル管理者は、フォーム
- 6. ジャンゴ - グループ管理者モデルの変更フィールド
- 7. 検証Djangoの管理親フォームとインラインデータ
- 8. Django管理者のForeignKeyフィールドのテキスト検索
- 9. Django管理者:データベース管理
- 10. UnicodeとDjangoの管理者
- 11. Django管理者モデルにdjango-localflavorフィールドが表示されませんか?
- 12. Django管理者 - カスタムインラインフォーム
- 13. Djangoモデルと管理者の日付範囲
- 14. 管理パネルでのDjango管理フォームの検証
- 15. Django管理者のフィールドセット
- 16. Djangoの管理者にログイン
- 17. Django管理者StackedInlineのカスタマイズ
- 18. Djangoの代替管理者
- 19. Django管理者のデフォルトブールフィルタ
- 20. カスタムビューDjangoの管理者
- 21. Django管理者の色
- 22. Djangoの管理者が
- 23. Djangoの管理者は、パスワード
- 24. Djangoの管理list_displayモデル法
- 25. Djangoの管理モデル名「S」
- 26. Djangoの管理者フィルタは、日付のためのDjangoの管理者に
- 27. 管理フォームの検索フィールドとしてモデルの__unicode__を使用
- 28. パスワードウィジェットとパスワードDjango管理者のハッシュ
- 29. Django contrib adminデフォルトの管理者とパスワード
- 30. 管理者のDjango _unaccentと_search