【问题标题】:Django: Create a querysetDjango:创建一个查询集
【发布时间】:2011-06-16 09:15:29
【问题描述】:

我有一个如下所示的友谊模型:

from_user = ForeignKey(User, related_name='friends')
to_user = ForeignKey(User, related_name='friends_')

我有一个经理来获取用户的所有友谊模型:

def for_user(self, user):
    return self.filter( Q(to_user=user) | Q(from_user=user) )

所以现在我想要一个包含所有朋友的用户对象的查询集。我想只写一个简单的循环并将它们添加到一个列表中,但后来我失去了编写查询的能力。例如,对于某个用户的所有朋友,我想过滤/获取一个具有特定用户名的朋友。

我的问题的标题有点笼统,所以如果有人知道更好的,请随时更改它。

【问题讨论】:

    标签: python django


    【解决方案1】:
    User.objects.filter(Q(friends__to_user=someuser)|Q(friends___from_user=someuser))
    

    不知道第二个Q() 是否真的有效,但这就是您决定调用相关字段的原因。

    【讨论】:

    • 不,如果是User,Django ORM 会做正确的事情。如果您确实有 PK,那么只需在末尾添加 _id。
    猜你喜欢
    • 1970-01-01
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 2019-07-16
    • 1970-01-01
    相关资源
    最近更新 更多