WTForms: HTML5 Widget'ı nasıl oluşturulur?

Aug 24 2020

WTForms renk giriş alanını kullanmaya çalışıyorum.

Formu böyle tanımlıyorum:

from wtforms.widgets.html5 import ColorInput

class ColoursForm(Form):
   background_color = ColorInput()

Bu görüş:

@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))

Jinja2 Şablonumda (colours_edit.html) şunu yapıyorum:

<p> {{ form.background_color }} Pick a color here </p>

Ancak, beklendiği gibi bir HTML Renk seçici oluşturmaz, bunun yerine işlenen HTML'de bunu görüyorum:

<wtforms.widgets.html5.ColorInput nesnesi, 0x10b836e90> Buradan bir renk seçin

Girdi neden işlenmiyor?

Yanıtlar

1 caspii Aug 25 2020 at 01:32

Çözdüm. Kodumla ilgili 2 sorun vardı:

() Burada eksikti:

<p> {{ form.background_color() }} Pick a color here </p>

Form şuna bakmalıdır:

class ColoursForm(Form):
"""Used when editing scoreboard colours"""
   background_color = StringField(widget=ColorInput())

Gönderen bu Stackoverflow cevap .

Son olarak, WTForms belgelerinin bu konuda pek iyi olmadığını söylemeliyim. Bazı örnekler kesinlikle yardımcı olacaktır.