問題タブ [flask-wtforms]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - フラスコ AttributeError: 'HTMLString' オブジェクトに属性 '__call__' がありません
次のようにフォーム エラーを処理するマクロを作成しました。
私のforms.pyは次のとおりです:
私のログインフォームは次のとおりです。
次のエラーが表示されます:
コードで何が間違っているのですか?HTML ファイルからマクロを削除し、代わりにエラー処理用の for ループを HTML 形式で含めると、完全に機能します。私が思うに、エラーの原因となる要素に含まれるプレースホルダーとクラスですが、その理由はわかりませんか?
python - Flask-WTF TextField と BooleanField をインポートできません
virtualenv を使用して新しいプロジェクトをセットアップしています。以下のように、スクリプトフォルダーから virtualenv pip を使用して多くのものをインストールしました。
グローバル python フォルダーにインストールされている他のパッケージはありません。私のコードは次のようになります。
sqlalchemy のような他のパッケージも仮想環境にのみインストールされています。
私が得るエラーは次のとおりです。
フォームは見つかりましたが、TextField と BooleanField は見つかりませんでした。ここで何が問題なのですか?
更新 Flask-WTF コードの一部を調べたところ、次のことがわかりました。
古いバージョンなどの例を使用していますか?
python - Flask WTForms は常に validate_on_submit() で false を返します
wtforms を使用して登録フォームを作成しました。フォームの一部の要素を再度繰り返す必要がないように、その中で FormField を使用しています。しかし、送信ボタンをクリックするたびに、validate_on_submit メソッドの呼び出しで常に false になります。なぜこれが起こっているのかわかりません。
私のform.py
は次のとおりです。
Signup
方法は次のとおりです。
HTMLフォームはgist hereにあります
参考までに: 必要なすべてのフィールドに実際に必要なデータを入力しています。validate_on_submit() を呼び出すと、まだ false になります。私のコードで何が間違っていますか?
編集: getLanguages は、データベースから言語を取得し、選択リストに入れるメソッドです。この機能は期待どおりに機能しており、言語のリストを取得できます。
編集 2: ここで 1 つのことを実現します。ProfileInfoForm() のすべてのフィールドを RegistrationForm() メソッドに追加してテストしたため、これは FormField が原因で発生しており、すべてが正常に機能し、サインアップできました。したがって、FormField または使用方法に問題がありますが、どこが間違っているのかわかりません。
問題は FormField ではなく、私の ProfileInfoForm() にあることがわかりました。常に false を返します。まだ理由はありませんが、その点については独自の検証を作成する必要があると思います。何かご意見は?
編集:
ダンプで次のようになりました(ここではpprintを使用):
編集:
少し掘り下げたところ、csrfトークンが見つからないためにエラーが生成されることがわかりました。しかし {{ signup_form.hidden_tag() }}
、HTML のフォーム テンプレートに含めました。要素を検査すると生成されたhtmlの隠しタグが表示され、ハッシュ値を持つcsrf_tokenフィールドが表示されます。では、ここで何が問題なのですか?
python - Flaskフォームフィールドを順序付きリストに
学校に在籍している生徒の例、科目ごとの生徒の成績など、複数のレポートを作成できるアプリケーションがあります。これらのレポートは、非常によく似たレポート作成基準を受け入れます。たとえば、登録された学生は日付範囲の検索基準を取得し、学生の結果は日付範囲とコースを取得します。
これらのレポート検索基準フォームのそれぞれを表すために、WTF フラスコ フォームを使用しています。例:
レンダリングの時点で、すべてのレポート基準フォームをレンダリングするテンプレートを 1 つだけ使用したいと考えています。テンプレートを作成してから、フラスコフォームのフィールドをループしてテンプレートに表示することを考えていました。しかし、そうすると、フィールドがテンプレートに表示される順序を管理できなくなります。
例えば:
誰かがフラスコフォームフィールドを順序付けられたリストに変換する方法を提案してもらえますか?UIに渡されたときにループしてフィールドをレンダリングできます
python - Flask-WTF のデフォルト エラーを翻訳する
Flask-WTF プラグインを使用して、WTForms からのデフォルト メッセージを翻訳しようとしています。これによると( https://github.com/ajford/flask-wtf/pull/65 )、動作するはずです。また、wtforms がデフォルトのエラー メッセージに gettext を使用していることも確認できます ( https://bitbucket.org/simplecodes/wtforms/src/113994790508/wtforms/validators.py )。
構成ファイルに WTF_I18n_ENABLED を追加し、次のコマンドを使用して .po ファイルを作成しました。
そこにデフォルトのメッセージが表示されると思っていましたが、表示されません。期待しすぎているのか、それとも間違ったことをしているのでしょうか?