【发布时间】:2021-04-21 05:35:24
【问题描述】:
我被 Django 中的模板上下文困住了。在我的模板中,我显示了有关球队的信息,并且我还想显示该球队的球员。在上下文中,我从团队中传递了球员,但是当我想显示这些数据时,它在模板中不起作用。我还尝试添加一些示例数据,例如"test":123,并将其显示在模板中,例如{{test}},但它也不起作用。
views.py*
def team_profile(request, name):
team = Team.objects.get(name=name)
player_list_filtered = []
player_list = User.objects.all()
for player in player_list:
if player.profile.team.name == team.name:
player_list.append(player)
context = {
'team': team,
'players': player_list_filtered,
'test': 123
}
return render(request, 'blog/team_profile.html', context)
team_profile.html*
{% block content %}
<div class="d-flex align-items-start flex-column content-section">
<img class="rounded-circle account-img" src="{{ team.image.url }}">
<h1>{{team.name}}</h1>
<h3>Mecze: {{team.matches}}</h3>
<h3>League: {{team.league}}</h3>
{% for player in players %}
<h3>{{player.first_name}}</h3>
{% endfor %}
<p>Test: {{test}}</p>
</div>
{% endblock content %}
这是我的结果
【问题讨论】:
-
你通过 player_list_filtered 但它是空的。我想你想在你的上下文中传递 player_list
-
当我通过 player_list 时它也不起作用。看,即使我通过
test也不会显示 -
在视图的循环中添加打印语句,以检查追加后列表是否仍然为空。像 print(player.first_name) 这样的东西取决于你有什么,这样你就可以准确地知道你的循环是否真的在工作
标签: python django templates django-templates