Jinja if 语句不起作用。我不知道如何解决
jinja if statement is not working. I don't know how to fix it
我真的需要帮助!
该代码不显示不同的值。如果代码找到一个连接项,它应该显示一个 link,如果它没有找到一个连接项,它应该显示一个表单。否则:显示一些文本。
html:
{%- if join -%}
<br>
<br>
<br>
<center>
<a href="/clubs/{{ club.id }}/add_post" style="text-decoration:none; font-size:18px; color:white; padding:10px 20px 10px 20px; background:#134401;">Add Post +</a>
</center>
{%- elif not join -%}
<br>
<br>
<br>
<form action="/clubs/{{ club.id }}" method="POST">
<center>
<input type="submit" value="Join" style="width:20%; padding: 10px 5px 10px 5px; background:#1d2d0d; color:white; font-size:20px">
</center>
</form>
{%- else -%}
<h1>nope</h1>
{%- endif -%}
函数:
@application.route('/clubs/<int:id>', methods=['GET', 'POST'])
@login_required
def viewClub(id):
post = Post.query.filter_by(clubId=id)
club = Club.query.get_or_404(id)
join = Join.query.filter_by(clubId=id, userId=current_user.id)
if request.method == 'POST':
name = club.name
user = current_user.username
userId = current_user.id
clubId = club.id
createClub = Join(name=name, clubId=clubId, user=user, userId=userId)
db.session.add(createClub)
db.session.commit()
return redirect('/')
else:
return render_template('viewClub.html', club=club, post=post, join=join)
您的数据库查询不是 return 查询的结果,它 return 是查询本身。选中时始终为真。
您忘记在查询中添加 .first()
或 .all()
等函数。
join = Join.query.filter_by(clubId=id, userId=current_user.id).first()
我真的需要帮助! 该代码不显示不同的值。如果代码找到一个连接项,它应该显示一个 link,如果它没有找到一个连接项,它应该显示一个表单。否则:显示一些文本。
html:
{%- if join -%}
<br>
<br>
<br>
<center>
<a href="/clubs/{{ club.id }}/add_post" style="text-decoration:none; font-size:18px; color:white; padding:10px 20px 10px 20px; background:#134401;">Add Post +</a>
</center>
{%- elif not join -%}
<br>
<br>
<br>
<form action="/clubs/{{ club.id }}" method="POST">
<center>
<input type="submit" value="Join" style="width:20%; padding: 10px 5px 10px 5px; background:#1d2d0d; color:white; font-size:20px">
</center>
</form>
{%- else -%}
<h1>nope</h1>
{%- endif -%}
函数:
@application.route('/clubs/<int:id>', methods=['GET', 'POST'])
@login_required
def viewClub(id):
post = Post.query.filter_by(clubId=id)
club = Club.query.get_or_404(id)
join = Join.query.filter_by(clubId=id, userId=current_user.id)
if request.method == 'POST':
name = club.name
user = current_user.username
userId = current_user.id
clubId = club.id
createClub = Join(name=name, clubId=clubId, user=user, userId=userId)
db.session.add(createClub)
db.session.commit()
return redirect('/')
else:
return render_template('viewClub.html', club=club, post=post, join=join)
您的数据库查询不是 return 查询的结果,它 return 是查询本身。选中时始终为真。
您忘记在查询中添加 .first()
或 .all()
等函数。
join = Join.query.filter_by(clubId=id, userId=current_user.id).first()