Django でフォーム入力とモデル検証を分離しますか? 質問する

Django でフォーム入力とモデル検証を分離しますか? 質問する

Django プロジェクトでは、入力検証とモデル レベルの検証を分離するのが一般的ですか? たとえば、ユーザー名が命名基準に適合しているかどうかを検証するのは入力検証であり、ユーザーがデータベースにまだ存在しないことを確認するのはモデル レベルの検証です。

同僚のコードを見ていたのですが、両方のタイプの検証をフォーム クラス (forms.py) に配置していました。これは一般的な設定ですか、それともモデル レベルの検証がモデルまたはビューに表示されるのが一般的ですか?

または、 を使用するなど、これにアプローチするより良い方法はありますかModelForm? 私は Django を使い始めたばかりで、この状況に推奨されるパターンは何かを学ぼうとしています。

ベストアンサー1

これは(私にとって)非常に興味深い質問です。

私の意見では、すべての検証コードはモデル コードに移動する必要があります。これがビジネス ルールに違反しない方法です。検証コードがモデル内にある場合、新しいフォームで一部の検証を忘れたり、複数のフォームで一貫性のないルールを持つことは不可能です。

あなたにリンクします「Django、モデルの保存メソッドで検証エラーを発生させる」あなたの質問に関連する質問です。以下の質問をご覧くださいコード検証をフォームからモデルに移動する方法この簡単な紹介がお役に立てば幸いです。

どのようなフレームワークから来ていますか? 環境では検証ルールはどのように記述されていますか?

おすすめ記事