gpt4 book ai didi

django - “RelatedManager”对象没有属性

转载 作者:行者123 更新时间:2023-11-28 19:36:51 28 4
gpt4 key购买 nike

我有一个这样定义的模型:

class UserDetail(models.Model):
user = models.ForeignKey(User, db_index=True, unique=True, related_name='details')
favourites = models.ManyToManyField(Article, related_name='favourited_by', blank=True)

我正在尝试做这样的事情:

article = get_object_or_404(Article, pk=id)
request.user.details.favourites.add(article)

为什么它不起作用?

我收到这个错误:

'RelatedManager' object has no attribute 'favourites'

我想 details 不是正确的类型,但为什么不呢?我该如何执行这样的查询?

最佳答案

当您访问 user.details 时,它会访问 UserDetail.user 外键的反向引用。外键本身并没有指定一个User只能有一个UserDetail,所以django给了你一个RelatedManager,你可以过滤和查询就像一个普通的 Manager。所以你对它做的事情和你对你的 .objects 管理器做的一样。您可以请求 user.details.all()user.details.filter()user.details.get() 和依此类推,这将根据方法和结果为您提供查询集、对象或异常。

关于django - “RelatedManager”对象没有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1823880/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com