Я создаю приложение для викторины и пытаюсь получить выбор, который пользователь выбрал из опции множественных выборов.
Я попытался вернуть значение обратно из формы, и я просто вернул опцию, которую выбрал пользователь, например. 'вариант а'.
У меня есть таблица с множественным выбором, в которой хранятся все варианты, из которых пользователь может выбирать:
class ComputerSystemsMultipleChoices(db.Model):
__tablename__='computersystemsmultiplechoices'
id=db.Column(db.Integer, primary_key=True)
answer=db.Column(db.String(100), unique=True, nullable=False)
wrong_answer1=db.Column(db.String(100),unique=True, nullable=False)
wrong_answer2=db.Column(db.String(100),unique=True, nullable=False)
computersystemsquestions_id=db.Column(db.Integer, db.ForeignKey('computersystemsquestions.id'))
Я запросил таблицу для получения значений:
@app.route("/computersystems", methods=['GET','POST'])
def computersystems():
form=QuizForm()
computersystemsq=ComputerSystemsQuestions.query.filter(ComputerSystemsQuestions.id).all()
computersystemsm=ComputerSystemsMultipleChoices.query.filter(ComputerSystemsMultipleChoices.id).all()
return render_template('computersystems.html',computersystemsq=computersystemsq,computersystemsm=computersystemsm, form=form)
HTML:
<form action="http://localhost:5000/info" method='POST'>
{% for computersystemsq in computersystemsq %}
{% for computersystemsm in computersystemsm %}
<div class="row">
<div class="col s12">
{{ computersystemsq.question }}
</div>
</div>
<div class="{{ computersystemsm.id }}"></div>
<div class="row">
<div class="col s6">
A: {{ computersystemsm.wrong_answer1 }}
</div>
<div class="col s6">
B: {{ computersystemsm.wrong_answer2 }}
</div>
</div>
<div class="row">
<div class="col s6">
C: {{ computersystemsm.answer }}
</div>
</div>
<div class="row">
<div class="input-field col s6">
{{ form.options( class= computersystemsm.id ) }}
<label for="options">Select an Option:</label>
</div>
</div>
<button class="btn waves-effect waves-light" type="submit" id="{{ computersystemsm.id }}">mark</button>
<br>
</div>
{% endfor %}
{% endfor %}
</form>
это викторина:
class QuizForm(FlaskForm):
options=SelectField('options', choices= [('option a', 'A'), ('option b', 'B'), ('option c', 'C')])
Код, когда я пытаюсь вернуть значение:
elif (request.method == 'POST'):
value = form.options.data
computer = ComputerSystemsMultipleChoices.query.filter( ComputerSystemsMultipleChoices.id).all()
quizscore = 0
if computer[0].answer == value:
quizscore = quizscore + 1
return render_template('info.html', quizscore=quizscore,computersystemsm=computersystemsm)
else:
return abort(500)
То, что я хочу вернуть мне, - это фактический выбор, который хранится в таблице, например. если пользователь выбрал C, я хочу получить ответ {{computersystemsm.answer}}, а не 'вариант c'.