как использовать значения в таблице как часть колбы формы - PullRequest
0 голосов
/ 19 апреля 2019

Я создаю приложение для викторины и пытаюсь получить выбор, который пользователь выбрал из опции множественных выборов.

Я попытался вернуть значение обратно из формы, и я просто вернул опцию, которую выбрал пользователь, например. 'вариант а'.

У меня есть таблица с множественным выбором, в которой хранятся все варианты, из которых пользователь может выбирать:

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'.

...