22

ここでは、そのままではサポートされていないと彼らは言います。

WTForms で HTML 入力フォーム フィールドに 'readonly' 属性を使用させる方法を知っていますか?

4

4 に答える 4

28

HTML / XHTMLの属性について話していると思いますが<input readonly>、これはリンクしたディスカッションスレッドの内容ではありません。(リンクされたスレッドは、渡されたフォーム入力を無視する方法に関する下位レベルの問題に関するものです)

読み取り専用属性(および実際にはフィールド上の任意の属性)を設定する方法は、テンプレートのkeyword-argとしてです。Jinjaを使用している場合、これは(html5)のようになります。

{{ form.myfield(readonly=true) }}

また、XHTMLまたは0.6.3より古いバージョンのWTFormsの場合:

{{ form.myfield(readonly="readonly") }}

'readonly'属性はブラウザへのヒントにすぎず、ユーザーが送信する内容には影響しないことに注意してください。つまり、悪意のあるユーザー(またはカスタムJSアラグリスモンキーまたはJSコンソールまたはDOMツリーを備えたブラウザーを使用しているユーザー)は、読み取り専用属性がに設定されているかどうかに関係なく、フィールドの値を変更するPOSTリクエストを生成する可能性があります。入力タグ。

このため、読み取り専用属性は、ユーザーエクスペリエンスを変更するオプションとしてのみ役立ち(たとえば、JSを使用したイベント/アクションに基づいてフィールドを無効にする)、「読み取り専用」フィールドからの入力は信頼できなくなります。他のどのフォーム入力よりも。

于 2012-03-24T04:27:37.573 に答える
4

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)
于 2015-08-24T13:05:57.140 に答える