如何使用 Django 中另一个模型的主键获取条目?
Posted
技术标签:
【中文标题】如何使用 Django 中另一个模型的主键获取条目?【英文标题】:How to get entry using primary key from another model in Django? 【发布时间】:2021-04-30 04:32:52 【问题描述】: 我有 2 个模型,“Listing”和“Watchlist”。 Watchlist 有一个引用列表的主键。 对于每个“监视列表”对象(具有相同的用户 X),我想以 QuerySet 的形式获取相应的“列表”条目。 我真的很挣扎,因为我不知道如何将 for 循环合并到查询集请求中。class Watchlist(models.Model):
listing = models.ForeignKey(Listing, on_delete=models.CASCADE, related_name="watchlists")
user = models.ForeignKey(User, on_delete=models.CASCADE)
【问题讨论】:
我不太明白你打算做什么,你的表格在哪里?为什么要循环?请解释一下。 查看***.com/questions/5437335/… 【参考方案1】:由于listing
字段有related_name="watchlists"
,我们可以像这样使用related_name 进行过滤:
Listing.objects.filter(watchlists__user = X) # X is a user instance.
请注意,__
用于字段查找。 __user
用于用户字段查找。
如果listing
字段没有任何相关名称,我们可以使用模型名称(Watchlist
)和_set
过滤到引用模型。
Listing.objects.filter(Watchlist_set__user = X) # X is a user instance.
【讨论】:
虽然此代码可能会为问题提供解决方案,但最好添加有关其工作原理/方式的上下文。这可以帮助未来的用户学习并将这些知识应用到他们自己的代码中。在解释代码时,您也可能会以赞成票的形式从用户那里获得积极的反馈。以上是关于如何使用 Django 中另一个模型的主键获取条目?的主要内容,如果未能解决你的问题,请参考以下文章
Django:如何在urlpatterns中访问其他模型的主键?