Here they say it's not supported out of the box.WTForms, giriş salt okunur özniteliğini destekliyor mu?
HTML giriş formu alanlarının WTForms ile 'readonly' özelliğini kullanmasını sağlamanın bir yolu olduğunu biliyor musunuz?
Here they say it's not supported out of the box.WTForms, giriş salt okunur özniteliğini destekliyor mu?
HTML giriş formu alanlarının WTForms ile 'readonly' özelliğini kullanmasını sağlamanın bir yolu olduğunu biliyor musunuz?
HTML/XHTML'de <input readonly>
özniteliğinden bahsediyorsunuzdur, bu, bağlandığınız konu dizininin konusuyla ilgili değildir. (Bağlantılı iş parçacığı, geçirilen form girdisini nasıl yok sayılacağı ile ilgili alt düzey bir sorundur)
Bir salt okunur özniteliği (ve aslında bir alandaki herhangi bir öznitelik) ayarlama yolu, şablonunuzda bir anahtar kelime argümanıdır.
{{ form.myfield(readonly=true) }}
Ve XHTML veya 0.6.3 daha eski WTForms sürümleri için: Jinja kullanılıyorsa, bu (html5) benziyor
{{ form.myfield(readonly="readonly") }}
Sadece 'salt okunur' niteliği yalnızca bir ipucu olduğuna dikkat tarayıcıya ve kullanıcının ne gönderdiğine hiçbir etkisi yoktur. Yani, kötü niyetli bir kullanıcı (veya özel JS a la greasemonkey veya JS konsolu veya DOM ağacı içeren bir tarayıcı kullanan bir kişi), salt okunur özniteliğin ayarlanıp ayarlanmadığına bakılmaksızın bir alanın değerini değiştirerek bir POST isteği oluşturabilir. giriş etiketi.
Bu nedenle, salt okunur özniteliği, yalnızca kullanıcı deneyimini değiştirme (örneğin, JS kullanarak bazı olay/eylemleri temel alan bir alanı devre dışı bırakma) için bir seçenek olarak yararlıdır ve 'salt okunur' alandan gelen girdiler yok diğer form girdilerinden daha güvenilebilir.
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)
solüsyonun alanı bildiriminde render_kw
kullanıyor.
my_field = fields.StringField('Label', render_kw={'readonly': True})
Ve eğer Jinja2'den erişmek istiyorsanız, aşağıdakileri yapabilirsiniz: {% if form.my_field.render_kw.readonly} readonly blabla {% endif%} – techniao
Biraz aptalca görünüyorsun, bunları, formunuzu ilan ederken widget'a veya bir şeye çarpıştıramazsın. – coleifer