1

データベースにアクセスする検証フォームをどこに置くべきか疑問に思っています。基本的に、ユーザーが入力する必要がありitem_type、最初item_typeにデータベースに存在することを確認したいと思います。

3 つのオプションがあります。

  1. データベースモデルにはItemTypeクラスがありadd()、既存のアイテムが存在するかどうかを確認する関数を配置します

  2. ビューでは、 wtforms からのページのルートで、form.validate_on_submit()データベースからデータを取得するためのチェックを行い、存在する場合はここにエラーを入力します

  3. wtformsで、クラスvalidate()のデフォルトの検証後に追加の検証を追加するForm

2 番と 3 番を使用している人を見たことがありますが、どちらが最適かはわかりません。私が望むエラーメッセージは、フォームの特定のフィールドにも表示する必要があります(これは、フォームフィールドへの参照があるため、方法2と3で実現できます)が、データベースへのアクセスに関連しているため、おそらくモデル関数へのデータベースアクセスに関するすべてを入れる方が良いですか?

4

1 に答える 1