Djangoプロジェクトで入力検証とモデルレベル検証を分離するのが一般的ですか?たとえば、ユーザー名が命名基準に合っているかどうかを検証することは、入力検証であり、ユーザーがデータベースにないことを検証することは、モデル・レベルの検証になります。Djangoでのフォーム入力とモデル検証の分離?
私は同僚のコードを見ていて、両方のタイプの検証をフォームクラス(forms.py)に入れています。これは典型的な設定ですか、またはモデルレベルの検証がモデルまたはビューに表示されるのがより一般的ですか?
ModelForm
を使用するなど、これに近づくより良い方法がありますか?私はむしろDjangoの新機能で、この状況にどのようなパターンが推奨されているのかを知ろうとしています。
私は同意します。ほとんどのことは実際には「モデルレベル」の検証と考えることができます。名前付け基準に合致しない場合は、実際にデータベースにアクセスするユーザー名は必要ありません。フォームからフォームへと変化するものがいくつかあります。それがフォーム自体で検証する場所です。あなたはフィールドにファイルの種類を保持するファンシーなファイルモデルを持っているかもしれません。どんなタイプでもモデルレベルでOKですが、写真のアップロードフォームではpngやjpegに制限したいと思います。 – dokkaebi