python - 如何在父对象中获取子属性

标签 python django

我是 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/

相关文章:

python - 如何使用 Python 将图形数字化?

python - 要求用户提供输入,直到他们给出有效的答复

Python 3 : UnboundLocalError - local variable referenced before assignment

python - Pandas 合并 Vlookup,KeyError : "[' Value'] not in index"

python - 从 。导入模型有效,但导入模型无效

python - 复选框形式的 Django 权限

python - Django 枪兽 : Error when calling the metaclass bases

python - Django cookie 和 header

python - 在 Python 请求中使用 Chrome 的 cookie

django - 如何/在哪里停止支付失败时调用 Django Formwizards 'done' 方法