У меня есть этот скрипт python, который я использую для отправки списка словарей на веб-страницу.Проверка нескольких переключателей с помощью Flask
from flask import Flask, render_template
from flask.ext.wtf import Form
from wtforms.fields import RadioField
app = Flask(__name__)
app.config.from_object(__name__)
class SimpleForm(Form):
relevance = RadioField('Label', choices=[('0','A'), ('1','B'), ('2','C')])
@app.route('/',methods=['post','get'])
def hello_world():
form = SimpleForm()
if form.validate_on_submit():
print form.relevance
else:
print form.errors
stuff = {
"text": "blah",
"other": "random",
"title": "21",
"radios": form
}
stuff2 = {
"text": "blah2",
"other": "random2",
"title": "22",
"radios": form
}
all_stuff = {
"mall": [stuff, stuff2]
}
return render_template('example.html', **all_stuff)
if __name__ == '__main__':
app.run(debug=True)
Это example.html
:
<form method="post">
{% for a in mall %}
{{ a.other }}<br>
{{ a.title }}<br>
{{ a.text }}<br>
{{ a.radios.relevance }}<br>
{% endfor %}
<input type="submit">
</form>
Это печатает два словаря, но радиокнопки действуют как единый набор переключателей. Здесь я показал 2 словаря, но у меня будет как 50 словарей, значения радиокнопки которых я должен представить. Как я могу это сделать? Всякий раз, когда я отправляю, я получаю {'csrf_token': ['CSRF token missing']}
Другое дело, почему именно этот способ рендеринга Радио-кнопок приводит к вертикальному списку переключателей? Есть ли способ получить горизонтальное представление кнопок?
Это потому, что все ваши словари указывают на один экземпляр формы? Видеть отображаемый html может помочь. – gonkan