如何在Django / Python中引用“一对多”关系的“多个”?

问题描述 投票:1回答:1

我正在使用Python 3.7和Django。我有以下两种型号......

class Article(models.Model):
    title = models.TextField(default='', null=False)



class ArticleStat(models.Model):
    article = models.ForeignKey(Article, on_delete=models.CASCADE, related_name='articlestats')
    elapsed_time_in_seconds = models.IntegerField(default=0, null=False)
...
    class Meta:
       unique_together = ('article', "elapsed_time_in_seconds",)

请注意,文章有多个ArticleStat对象。如果我的代码中有某个“文章”对象,我如何使用最大的elapsed_time_in_seconds引用其ArticleStat对象?甚至做

article.articlestats

导致错误,所以我甚至不知道如何从我的初始对象引用相关的ArticleStat对象。

python django python-3.x foreign-keys one-to-many
1个回答
3
投票

article.articlestats相当于ArticleStat.objects,它为您提供了对经理的引用。您需要编写完整的查询表达式,例如article.articlestats.all()或article.articlestats.filter(...)等。

要得到你想要的,只需写:

article.articlestats.all().order_by('-elapsed_time_in_seconds')[0]

请注意,如果没有与提供的文章相关的ArticleStat对象,则会引发IndexError

© www.soinside.com 2019 - 2024. All rights reserved.