Как я могу получить значение RadioField, используя форму колбы? - PullRequest
0 голосов
/ 18 апреля 2019

Я не могу получить значения переключателя в SQLalchemy фляги, используя форму фляги.

class AnswerForm(Form):
    ans = 'ddd'
    your_answer = RadioField("", choices=[('ans1', 'ans1'),('ans2','q.ans2'), ('ans3','q.ans3'), ('ans4','q.ans4')])
    submit = SubmitField('Answer')

МАРШРУТ:

@app.route('/question', methods=['GET', 'POST'])
@app.route('/question/page/<int:page>', methods=['GET', 'POST'])
def question(page=1):
    # questions = Question.query.paginate(page, per_page=1)
    quess = Question.query.order_by(func.rand())
    quest = quess.limit(3).from_self()
    questions = quest.paginate(page, per_page=1)
    print('new1')

    form = AnswerForm()

    if request.method == 'POST':

        print "submitted"
        print form.ans
        print form.your_answer.data
    return render_template('questionview.html', title=' Quiz', questions=questions, form=form)

HTML: Вот мой код.Он получает вопросы и параметры из базы данных с использованием Flask SQL Alchemy.............................................................................

<form method="POST" action="">
  <div class="jumbotron text-center">
 <h1>Start a test</h1>

    {% for q in questions.items %}

    <ul class="list-group">

      <li class="list-group-item" name='que_desc'><a href="subject_test/{{q.sub_id}}">{{q.ques}}</a></li>
      <div class="form-check">
        <input class="form-check-input" type="radio" name="option" id="exampleRadios1" value="ans1">
        <label class="form-check-label" for="exampleRadios1">
          {{q.ans1}}
        </label>
      </div>
      <br>
      <div class="form-check">
        <input class="form-check-input" type="radio" name="option" id="exampleRadios2" value="ans2">
        <label class="form-check-label" for="exampleRadios2">
          {{q.ans2}}
        </label>
      </div>
      <br>
      <div class="form-check">
        <input class="form-check-input" type="radio" name="option" id="exampleRadios2" value="ans3">
        <label class="form-check-label" for="exampleRadios2">
          {{q.ans3}}
        </label>
      </div>
      <br>
      <div class="form-check">
        <input class="form-check-input" type="radio" name="option" id="exampleRadios2" value="ans4">
        <label class="form-check-label" for="exampleRadios2">
          {{q.ans4}}
        </label>
      </div>
      <br>
    </ul>

    <hr>
    {% endfor %}
    {{ form.submit(class="btn btn-outline-info") }}
  </div>
</form>

1 Ответ

1 голос
/ 18 апреля 2019

Ваша форма должна получить данные из запроса.Заменить:

form = AnswerForm()

На:

form = AnswerForm(request.form)

Для деталей: http://flask.pocoo.org/docs/1.0/patterns/wtforms/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...