データベースにアクセスする検証フォームをどこに置くべきか疑問に思っています。基本的に、ユーザーが入力する必要がありitem_type
、最初item_type
にデータベースに存在することを確認したいと思います。
3 つのオプションがあります。
データベースモデルには
ItemType
クラスがありadd()
、既存のアイテムが存在するかどうかを確認する関数を配置しますビューでは、 wtforms からのページのルートで、
form.validate_on_submit()
データベースからデータを取得するためのチェックを行い、存在する場合はここにエラーを入力しますwtformsで、クラス
validate()
のデフォルトの検証後に追加の検証を追加するForm
2 番と 3 番を使用している人を見たことがありますが、どちらが最適かはわかりません。私が望むエラーメッセージは、フォームの特定のフィールドにも表示する必要があります(これは、フォームフィールドへの参照があるため、方法2と3で実現できます)が、データベースへのアクセスに関連しているため、おそらくモデル関数へのデータベースアクセスに関するすべてを入れる方が良いですか?