Как получить доступ к данным таблицы django join?
Я пытаюсь получить доступ к данным в таблице join с помощью django. У меня есть список пользователей и список групп в отношениях ManyToMany.
class Member(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
groups = models.ManyToManyField(Group, related_name="members")
class Team(models.Model):
name = models.CharField(max_length=25)
creator = models.ForeignKey("footballteamapi.Member", on_delete=models.CASCADE)
Таблица присоединения выглядит следующим образом:
footballteamapi_member_teams
id+member_id+team_id
1+1+1
2+1+2
3+2+1
Как мне получить доступ к этой таблице, поскольку нет совпадающей модели для ссылки (т.е. Team.objects.all())?
Вы можете использовать доступ к таблице Team
в обратном направлении следующим образом:
member = Member.objects.get(id="<member-id>")
teams = member.team_set.all()
Но мне нравится устанавливать опцию related_name
в поле ForiegnKey следующим образом:
class Team(models.Model):
creator = models.ForeignKey(..., related_name='teams')
...
Тогда вышеупомянутое изменяется на:
member = Member.objects.get(id="<member-id>")
teams = member.teams.all()