在django中过滤主要对象后,如何显示细节对象?
我正在开发一个可以创建团队、球员的应用程序,我现在正在显示球员对象,这些球员对象通过外键连接到一个显示相关球员的团队。但我遇到的问题是,当球员对象显示在详细视图中时,所有玩家都会被显示,而特定的玩家对象会被显示。请帮我解决这个问题 这是html在django中过滤主要对象后,如何显示细节对象?,django,django-models,django-templates,django-views,django-template-filters,Django,Django Models,Django Templates,Django Views,Django Template Filters,我正在开发一个可以创建团队、球员的应用程序,我现在正在显示球员对象,这些球员对象通过外键连接到一个显示相关球员的团队。但我遇到的问题是,当球员对象显示在详细视图中时,所有玩家都会被显示,而特定的玩家对象会被显示。请帮我解决这个问题 这是html {% include 'games_app/base.html' %} {% block body_block %} <div> {% for players in play.teams.all %} <
{% include 'games_app/base.html' %}
{% block body_block %}
<div>
{% for players in play.teams.all %}
<h1>Players :<strong>{{players.player_name}}</strong></h1>
<h1>Players-age :<strong>{{players.player_age}}</strong></h1>
<h1>Players-form :<strong>{{players.player_form}}</strong></h1>
<h1>Players-over :<strong>{{players.over}}</strong></h1>
<h1>Players-batting :<strong>{{players.batting}}</strong></h1>
<a href="{% url 'games_app:players_update' players.pk %}">Edit Player</a></br>
<a href="{% url 'games_app:players_delete' players.pk %}">Delete Player</a>
{% endfor %}
</div>
{% endblock %}
[已解决]我刚刚更改了模型和其他详细信息。看起来您正在将pk设置为True,而不是pk
model = models.Team.objects.get(pk=True)
应该是
model = models.Team.objects.get(pk=pk)
你应该试试这个:
model=models.Team.objects.get(pk=pk)
然后以正确的方式将上下文传递给模板。在views.py中,创建detailview的最简单方法如下:
from django.views import generic
class DetailView(generic.DetailView):
model = Team
template_name = 'games_app/players_detail.html'
然后,在URL.py中,Pk应作为变量传递,以确定要转到哪个玩家:
path('<pk>/detail', views.DetailView.as_view(), name='detail'),
你说的“我得到团队匹配查询”不存在。那么你想要的pk在数据库中不存在。你想使用play.teams.all但不在你的视图中声明它存在,但我不知道为什么它会给我这个错误。我得到一个错误,那么团队匹配查询不存在。我只是通过将模型设置为玩家,然后显示数据,解决了这个问题,这是一个愚蠢的错误,但非常棘手。:)
path('<pk>/detail', views.DetailView.as_view(), name='detail'),
{% for player in team.player_set.all %}
....