Как отобразить детализацию объектов после фильтрации их основного объекта в Django? - PullRequest
0 голосов
/ 20 апреля 2019

Я работаю над приложением, которое может создавать команды «Игроки». Сейчас я работаю над отображением объектов игроков, которые связаны командами с внешним ключом, которые отображают соответствующих игроков в их команде. Но проблема, которую я получаю, заключается в том, что объекты игроков отображаются в В подробном представлении отображаются все игроки, в то время как должны отображаться объекты конкретного игрока. Пожалуйста, помогите мне решить проблему.

здесь, 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 %}

Вот, пожалуйста, view.py деталей игроков

def Detail_Players(request,pk):

    model = models.Team.objects.get(pk=True)

    template_name = 'games_app/players_detail.html'


    return render(request, template_name, context=model)

[решено] Я только что сменил модель и другие детали.

Ответы [ 3 ]

0 голосов
/ 20 апреля 2019

Вы должны попробовать это:

model = models.Team.objects.get(pk=pk)

И затем передать контекст шаблону правильным способом.

0 голосов
/ 20 апреля 2019

в views.py существует самый простой способ создать ваш подробный вид следующим образом:

from django.views import generic
class DetailView(generic.DetailView):
    model = Team
    template_name = 'games_app/players_detail.html'

, затем в urls.py Pk следует передать как переменную, чтобы определить, к какому игроку вы хотите перейти:

path('<pk>/detail', views.DetailView.as_view(), name='detail'),

затем в вашем шаблоне используйте метод "set" через цикл for следующим образом:

 {% for player in team.player_set.all %}
....
0 голосов
/ 20 апреля 2019

Похоже, вы устанавливаете pk в True вместо pk.

model = models.Team.objects.get(pk=True)

должно быть

model = models.Team.objects.get(pk=pk)
...