私は、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管理者のJavascript検証
- 2. Django管理者とモデルの削除
- 3. Django管理者のForeignKeyフィールドのテキスト検索
- 4. Django管理者:データベース管理
- 5. UnicodeとDjangoの管理者
- 6. Django管理者StackedInlineのカスタマイズ
- 7. Django管理者の色
- 8. カスタムビューDjangoの管理者
- 9. Django管理者のフィールドセット
- 10. 管理フォームの検索フィールドとしてモデルの__unicode__を使用
- 11. ジャンゴ:管理者:管理者にフィールドのウィジェットを変更
- 12. Djangoの管理者フィルタは、日付のためのDjangoの管理者に
- 13. Django管理者がすべてのフォーム間のフィールドの合計に依存するインラインフォームの検証
- 14. Djangoの管理者は、多対多の中間モデル
- 15. Djangoの管理者がCSRFの検証を失敗しました
- 16. Django - Django管理者のページコンテンツを管理する
- 17. Django管理者用Javaアプリケーション
- 18. 非関連モデルによるDjango管理者のカスタマイズ
- 19. 管理者に「製品を追加する」ときの検証
- 20. インラインフォームセットとモデルフォームを持つ管理者のフォーム検証
- 21. Djangoの管理者、インラインの入力フィールドの
- 22. Django - 管理者のuserprofileフィールドで並べ替え
- 23. 管理者の検索クエリ
- 24. django管理者モデルをカスタマイズするには?
- 25. auth.Userモデル、プロキシフィールド、およびDjango管理者を拡張する
- 26. jQuery検証プラグインとDjango管理での問題
- 27. CakePHP認証ユーザーと管理者ログイン
- 28. 管理者として認証する
- 29. Django管理者の検索の最適化
- 30. Djangoフォームのフィールド検証