/ / Zahŕňa argument „through“ v ManyToManyField v Django všetky polia? - python, django, django-modely

Má argument "cez" v ManyToManyField v Django všetky polia? - python, django, django modely

Má argument "prostredníctvom" v ManyToManyField v systéme WindowsDjango obsahuje všetky polia v súvisiacich tabuľkách? Napríklad bude Skupina obsahovať všetky osobné a členské podania? A tiež koľko hlbokých úrovní môžu byť vzťahy „cez“?

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)

odpovede:

1 pre odpoveď č. 1

Áno, keď použijete priechodné pole, polia priradených modelov sú prístupné zo súvisiacej tabuľky. Úrovne môžu byť hlboké, ako môžete, ale komplikuje sa len vytvorenie samostatných tabuliek.