WTForms: Bagaimana cara merender Widget HTML5?
Aug 24 2020
Saya mencoba menggunakan bidang masukan warna WTForms.
Beginilah cara saya mendefinisikan formulir:
from wtforms.widgets.html5 import ColorInput
class ColoursForm(Form):
background_color = ColorInput()
Inilah pandangannya:
@app.route("/colours/<token>/", methods=['GET', 'POST'])
def edit_colours(token):
form = ColoursForm(request.form)
if request.method == 'GET':
return render_template('colours_edit.html', form=form, token=token)
else: # Request = post
return redirect(url_for('view_scoreboard', token=token))
Di Template Jinja2 saya (colours_edit.html) saya melakukan ini:
<p> {{ form.background_color }} Pick a color here </p>
Namun, itu tidak membuat HTML Color-picker seperti yang diharapkan, sebagai gantinya saya melihat ini di HTML yang diberikan:
<wtforms.widgets.html5.ColorInput objek di 0x10b836e90> Pilih warna di sini
Mengapa masukan tidak diberikan?
Jawaban
1 caspii Aug 25 2020 at 01:32
Saya berhasil. Ada 2 masalah dengan kode saya:
Saya hilang () di sini:
<p> {{ form.background_color() }} Pick a color here </p>
Formulirnya akan terlihat seperti ini:
class ColoursForm(Form):
"""Used when editing scoreboard colours"""
background_color = StringField(widget=ColorInput())
Dari jawaban Stackoverflow ini .
Akhirnya, saya harus mengatakan bahwa dokumentasi WTForms tidak terlalu bagus dalam hal ini. Beberapa contoh pasti akan membantu.
Selalu Menjadi Ancaman: Mengapa Orang Berkulit Coklat dan Hitam Tidak Bisa Nyaman di Amerika Serikat
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'