Показывать элементы списка, соединенного с manytomanyfield

Это мой файл models.py

from __future__ import unicode_literals
from django.utils.encoding import python_2_unicode_compatible
from django.db import models
from django.utils import timezone
import datetime

class Jugadores(models.Model):
    nombre = models.CharField(max_length=30, default='')
    edad = models.IntegerField()    
    posicion = models.CharField(max_length=15, default='')

    def __str__(self):
        return self.nombre

class Equipo(models.Model):
    pos = models.IntegerField(default=1)
    nombre = models.CharField(max_length=20, default='')
    puntos = models.IntegerField(default=0)
    jugadores = models.ManyToManyField(Jugadores)

    def __str__(self):
        return self.nombre

Мое сомнение состоит в том, что я хочу показать, во мне сдержись названная jugadores.html, список игроков, соединенный в каждую команду. А именно, если мою команду называются Барселона, что, нажав на ссылке Барселону, у меня появился список игроков Барселоны. И дело в том, что у меня появляется список всех игроков, попавших в мою базу данных.

Это мой файл views.py

from django.http import HttpResponse
from django.shortcuts import render
from django.template import loader ,context
from .models import Equipo, Jugadores

def inicio(request):
    return render(request, 'index.html')


def ver_equipo(request):
    equipo = Equipo.objects.all()
    context = {'equipos': equipo}
    return render(request, 'equipos.html', context)

def ver_clasificacion(request):
    clasificacion = Equipo.objects.order_by('puntos')
    context = {'clasificaciones': clasificacion}
    return render(request, 'clasificacion.html', context)

def ver_jugadores(request):
    jugador = Jugadores.objects.all()
    context = {'jugadores': jugador }
    return render(request, 'jugadores.html', context)
0
задан 26.01.2017, 16:37
0 ответов

Хороший то, что обычно делается, что данная твой список Команд в твоем виде ver_equipo в сдержись то, что ты делаешь, он состоит в том, чтобы пробегать все команды, этой формы, добавлять соединение к новому виду, пример был бы таким.

<table>
{% for equipo in equipos %}
<tr>
    <th>{{ equipo|upper }}</th>
    <td><a href="{% url "ver_jugadores_equipo" equipo.id %}">Ver equipo</a></td>
</tr>
{% endfor %}
</table>

Потом в твоих views.py ты добавляешь новый вид:

...
from django.shortcuts import get_object_or_404
def ver_jugadores_equipo(request, pk):
    equipo = get_object_or_404(Equipo, pk=pk)
    jugadores = equipo.jugadores.all()
    return render(request, 'lista_jugadores_por_equipo.html', {'jugadores': jugadores})
...

Потом в твоих urls.py

...
# agregas dentro de tu arreglo de urlpatterns
url(r'jugadores/equipo/(?P<pk>\d+)/', views.ver_jugadores_equipo, name='ver_jugadores_equipo'),
...

И только останься, что ты веришь, сдержись 'lista_jugadores_por_equipo.html', что приходит с игроками команды, которой ты дал его click в соединении. И ты должен обращаться и начинать заносить в список

Любое сомнение, прокомментируй.

1
ответ дан 03.12.2019, 17:30