我是 Django 的新手,似乎有一种简单明了的方法可以做到这一点,但如果是的话,我还没有找到它。
(稍微简化的代码)
我有一个初级类
class Article(models.Model):
...
还有一个中学
class Headline(models.Model):
article = models.ForeignKey(Article)
headline = models.CharField(max_length=200)
有没有一种简单的方法来获取 Article
对象的 headline
属性(或者更确切地说,获取所有文章的 headline
属性) Headline
对象与 Article
对象关联)?我知道可以通过 article
属性过滤 Headline
对象,但我怀疑有一种更快更简单的方法。是否可以向类 Article
添加一个方法,例如,它会返回所有关联的 Headline
对象?
最佳答案
如果您只有一个 Article
实例,那么您可以通过以下方式获取所有标题对象
article.headline_set.all()
这会返回一个 QuerySet,您可以像使用任何其他查询集一样使用它。
编辑:如果您想要获取实际的标题值,那么就像对于任何其他查询集一样,您将需要获取Headline
的单个实例。例如,
headline = article.headline_set.all()[0].headline
Edit2:正如 Thibault J 在评论中指出的那样,您可以使用
获取所有标题headlines = [headline.headline for headline in article.headlines.all()]
关于python - 如何在父对象中获取子属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6861890/