Here they say it's not supported out of the box.WTFormsは入力読み取り専用属性をサポートしていますか?
HTML入力フォームフィールドにWTFormsの「読み取り専用」属性を使用する方法をご存知ですか?
Here they say it's not supported out of the box.WTFormsは入力読み取り専用属性をサポートしていますか?
HTML入力フォームフィールドにWTFormsの「読み取り専用」属性を使用する方法をご存知ですか?
HTML/XHTMLで<input readonly>
という属性について話しているとします。これはリンク先のディスカッションスレッドについてではありません。 (リンクされたスレッドは、渡されたフォーム入力を無視する方法の下位レベルの問題です)
readonly属性(実際にはフィールドの属性)を設定する方法は、テンプレートのkeyword-argです。神社を使用している場合、これは(HTML5)のようになります。
{{ form.myfield(readonly=true) }}
とXHTMLまたは0.6.3よりも古いWTFormsのバージョンの:
{{ form.myfield(readonly="readonly") }}
ただ、「読み取り専用」属性は単なるヒントであることに注意してくださいブラウザに表示され、ユーザーが送信した内容には影響しません。つまり、悪意のあるユーザー(またはカスタムJS a la greasemonkeyまたはJSコンソールまたはDOMツリーを持つブラウザを使用しているユーザー)は、readonly属性が設定されているかどうかに関係なく、フィールドの値を変更するPOST要求を生成する可能性があります入力タグ。
この理由から、readonly属性は、ユーザーエクスペリエンスを変更するオプション(たとえば、JSを使用していくつかのイベント/アクションに基づいてフィールドを無効にする)としてのみ有用で、 'readonly'フィールドからの入力はno他のフォーム入力よりも信頼性が高い。
https://wtforms-components.readthedocs.org/en/latest/#
from wtforms import Form, DateField, TextField
from wtforms_components import TimeField, read_only
class EventForm(Form):
name = TextField('Name')
start_date = DateField('Start date')
start_time = TimeField('Start time')
def __init__(self, *args, **kwargs):
super(EventForm, self).__init__(*args, **kwargs)
read_only(self.name)
溶液は、フォームフィールドの宣言でrender_kw
を使用しています。
my_field = fields.StringField('Label', render_kw={'readonly': True})
Jinja2からアクセスしたい場合は、次のようにすることができます。 {%if form.my_field.render_kw.readonly} readonly blabla {%endif%} – techniao
フォームを宣言しているときに、ウィジェットなどにkwargsとしてこれらを渡すことができないようです。 – coleifer