django запрос доступа к данным внешнего ключа - PullRequest
0 голосов
/ 18 января 2020

Извините, если это дубликат, но я не смог найти удовлетворительного ответа для этого случая. Может быть, я делаю что-то в корне неправильно, например необходимость определять модели другим способом. Я также очень новичок в django. Так что предложения будут действительно полезны.

Предположим, у меня есть такие модели:

from django.contrib.auth.models import Group
class Team(Group):
    description = models.CharField(max_length=30)

class Players(models.Model):
    name = models.CharField(max_length=60)
    team = models.ForeignKey(Team, on_delete=models.CASCADE)

Теперь, если мне, например, нужен набор запросов всех игроков по модели команды, что я могу сделать? У меня есть внешний ключ в модели игроков, а не в модели команды. Поэтому что-то вроде Team.objects.filter(logic) необходимо, чтобы получить всех игроков. Но какой именно лог c будет работать здесь?

Любая помощь будет высоко ценится.

Ответы [ 2 ]

2 голосов
/ 18 января 2020

Django позволяет получить доступ к связанным объектам в обратном порядке. Это вызывает обратное отношение. И связанные с ним объекты менеджера используют для этого. Вы можете найти более подробную информацию здесь и здесь . В вашем конкретном случае c вы можете получить игроков, используя атрибут команды players_set:

team = Team.objects.get(pk=1)
players = team.players_set.all()
1 голос
/ 18 января 2020

Django ORM также может фильтровать по соотношению. этот вид фильтрации действителен для всех видов отношений.

 players = Players.objects.filter(team__id = 1)

, если у вас есть объект команды.

players = Players.objects.filter(team = team)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...