Django отношения "многие к одному
В документе django https://docs.djangoproject.com/en/3.2/topics/db/examples/many_to_one/ есть две таблицы, Report и Article,
class Reporter(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
email = models.EmailField()
def __str__(self):
return "%s %s" % (self.first_name, self.last_name)
class Article(models.Model):
headline = models.CharField(max_length=100)
pub_date = models.DateField()
reporter = models.ForeignKey(Reporter, on_delete=models.CASCADE)
def __str__(self):
return self.headline
class Meta:
ordering = ['headline']
Мой вопрос, если у вас есть список Отчетов, как бы вы получили их статьи? Я пробовал
articles = []
for report in reports:
article = Article.objects.filter(report = report)
articles.append(article )
но это не дает мне всех моих данных.
class Article(models.Model):
headline = models.CharField(max_length=100)
pub_date = models.DateField()
reporter = models.ForeignKey(Reporter, on_delete=models.CASCADE, related_name="articles")
Then you can just do `reporter.articles.all()`
Примечание: если ваше поле ForeignKey
не имеет атрибута related_name
, вы можете получить обратное отношение, вызвав <model_name>_set
. Например: reporter.article_set.all()