这可能是一个非常简单的问题,但是由于我是新手,因此很难解决。我有一组帖子(目前随机选择),我希望用户从显示的帖子中投票出自己喜欢的帖子。默认情况下,帖子数为2,但我会使其更具通用性和可变性。对于我的代码,我首先定义了WTForm单选按钮:
class SelectionForm(FlaskForm):
Selection = RadioField('Label', choices=[('v1','1'),('v2','2')])
然后我将其添加到路线中
def show_posts():
form = SelectionForm()
selection=2
if current_user.is_authenticated==False:
return redirect(url_for('login'))
post_count=db.session.query(Post).count()
post_select=sample(range(1,1+post_count),selection)
post=db.session.query(Post).filter(Post.id.in_(post_select)).all()
flash('Your vote has been submitted!', 'success')
if form.validate_on_submit():
return redirect(url_for('show_posts'))
return render_template('posts.html', posts=posts)
最后,我必须编写我的html文件,问题是只为两个笑话定义了表单类,而且我不知道如何在帖子前添加按钮,因为{{ 3}} 显示此方法:
{% for subfield in form.radio %}
<tr>
<td>{{ subfield }}</td>
<td>{{ subfield.label }}</td>
</tr>
{% endfor %}
但是我无法执行此操作,因为我的代码已经在html文件中包含另一个for循环:
{% extends "layout.html" %}
{% block content %}
{% for post in posts %}
<article class="media content-section">
<img class="rounded-circle article-img" src="{{ url_for('static', filename='profile_pics/' + post.author.image_file) }}">
<div class="media-body">
<div class="article-metadata">
<a class="mr-2" href="#">{{ post.author.username }}</a>
</div>
<p class="article-content">{{ post.content }}{{form.Selection}}</p>
</div>
</article>
{% endfor %}
{% endblock content %}
我该如何解决这个问题?