14

TextField、FileFieldのあるフォームがあり、RadioFieldを追加したいと思います。

ユーザーが1つしか選択できない2つのオプションを備えた無線フィールドが欲しいのですが。私は、機能する前の2つのフォームの例に従っています。

私のforms.pyは次のようになります

    from flask import Flask, request
    from werkzeug import secure_filename
    from flask.ext.wtf import Form, TextField, BooleanField, FileField, file_required,         RadioField
    from flask.ext.wtf import Required
    class ImageForm(Form):
        name = TextField('name', validators = [Required()])
        fileName = FileField('fileName', validators=[file_required()])
        certification = RadioField('certification', choices = ['option1', 'option2'])

私のviews.pyファイルには

form = myForm()
if form.validate_on_submit():
    name = form.name.data
    fileName = secure_filename(form.fileName.file.filename)
    certification = form.certification.data

私の.htmlファイルには

     {% block content %}
     <h1>Simple Form</h1>
     <form action="" method="post" name="simple" enctype="multipart/form-data">
         {{form.hidden_tag()}}
         <p>
             Name:
             {{form.name(size=80)}}
         </p>
         <p>
             Upload a file
             {{form.fileName()}}
         </p>
         <p>
             Certification:
             {{form.certification()}}
         </p>
         <p><input type="submit" value="Submit"></p>
     </form>
     {% endblock %}

ラジオボタンフォームを使用している人の例をオンラインで見つけることができないようです。ここでRadioFieldの説明を見つけましたhttp://wtforms.simplecodes.com/docs/0.6/fields.html

フォームページにアクセスしようとすると、DEBUGエラー「ValueError:値が多すぎて解凍できません」が表示されます。

4

2 に答える 2

38

forms.py では、RadioField は次のようにする必要があります。

    RadioField('Label', choices=[('value','description'),('value_two','whatever')])

オプションは 'description' と 'whatever' で、送信された値はそれぞれ 'value' と 'value_two' です。

于 2013-01-29T20:31:14.800 に答える
8

form.certification() は機能しません。テンプレートの値を反復処理する必要があります。

交換:

{{ form.certification() }}

と:

{% for subfield in form.certification %}
<tr>
    <td>{{ subfield }}</td>
    <td>{{ subfield.label }}</td>
</tr>
{% endfor %}
于 2013-01-29T20:11:29.880 に答える