/ / Чи включає аргумент "через" у ManyToManyField у Django всі поля? - моделі python, django, django

Чи "аргумент" через "у ManyToManyField в Django включає всі поля? - python, django, django-models

Чи є аргумент "через" в ManyToManyField вDjango включає всі поля у відповідні таблиці? Наприклад, чи буде група містити всі подані особи та члени? А також скільки глибоких рівнів можуть бути "через" відносини?

from django.db import models

class Person(models.Model):
name = models.CharField(max_length=128)

def __str__(self):              # __unicode__ on Python 2
return self.name

class Group(models.Model):
name = models.CharField(max_length=128)
members = models.ManyToManyField(Person, through="Membership")

def __str__(self):              # __unicode__ on Python 2
return self.name

class Membership(models.Model):
person = models.ForeignKey(Person, on_delete=models.CASCADE)
group = models.ForeignKey(Group, on_delete=models.CASCADE)
date_joined = models.DateField()
invite_reason = models.CharField(max_length=64)

Відповіді:

1 для відповіді № 1

Так, коли ви користуєтесь наскрізним полем, пов’язані з ним моделі "поля доступні з відповідної таблиці. Рівні можуть бути глибокими, як тільки ви можете, але це стає складніше краще просто створити окремі таблиці.