Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在django中过滤主要对象后,如何显示细节对象?_Django_Django Models_Django Templates_Django Views_Django Template Filters - Fatal编程技术网

在django中过滤主要对象后,如何显示细节对象?

在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 %} <

我正在开发一个可以创建团队、球员的应用程序,我现在正在显示球员对象,这些球员对象通过外键连接到一个显示相关球员的团队。但我遇到的问题是,当球员对象显示在详细视图中时,所有玩家都会被显示,而特定的玩家对象会被显示。请帮我解决这个问题

这是html

    {% 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 %}
....