私は Flask-Admin と PeeWee Backend ModelView を組み合わせて研究しています (ただし、私の質問は SQLAlchemy バックエンドにも適用される可能性があります)。ドキュメントや例で見つけられなかったことが 2 つあります。
(1)。モデルに一意のフィールドがあり、それをテスト/複製しようとすると、デフォルトの Flask クラッシュ画面が表示され、「IntegrityError: 列のユーザー名が一意ではありません」というメッセージが表示されます。
https://github.com/mrjoes/flask-admin/blob/master/examples/peewee/simple.pyで利用可能な PeeWee の例をテストしており、21 行目を "username = peewee.CharField(max_length= 80、一意 = True)"
次に、「username」=「user1」で 2 人のユーザーを追加しようとします。
編集画面 (またはリスト画面でさえ、どの管理画面でも可能) に戻り、制御されたエラー メッセージを表示する丁寧な方法はありますか? カスタム エラー メッセージは必要ありません。現在のメッセージは問題ありません (IntegrityError: 列のユーザー名が一意ではありません)。しかし、私はクラッシュ画面を望んでいません。
Flask のデフォルトの 500 ページをセットアップ/使用することはできましたが、Flask-Admin フローを完全に終了し、ユーザーは入力したばかりのデータを「見逃す」ことになります。
編集画面に戻りたいのですが、何らかのアラート/エラー メッセージが表示されます。テンプレートを拡張する必要はありません。これは問題ではありません。しかし、エラーをインターセプトして適切に処理する場所が見つかりませんでした。助言がありますか?
(2):
また、フローに保存前の検証を追加する方法も必要です。たとえば、initial_date と final_date を持つエンティティの編集フォームにいて、保存する前に final_date が initial_date より大きいか null であることを確認したいと考えています。
このクライアント側で、javascript を使用して、そのエンティティの編集テンプレートを拡張し、検証スクリプトをテール ブロックに追加する (そして form.submit イベントをインターセプトする) ことができます。
しかし、検証でサーバー側の土壇場での検証が必要な場合はどうすればよいでしょうか? 質問1で説明したのと同じ方法で、フローを傍受して検証を追加し、運が良ければエラーメッセージを返す方法/場所はありますか?
前もって感謝します、
よろしく、