2015-05-09 91 views
0

我在Django中有一个查询返回用户列表。Django和查询中的额外字段

现在,对于每个返回的用户,我都会添加一个额外的字段:我需要知道用户是否已经是当前用户的好友。

我不明白,如果我不得不使用.annotate或extra()或其他。我很困惑。

我也试过这个代码,但不工作:

query = query.annotate(are_friends=Count(Q(user__friends=user))) 

我得到这个错误:'Q' object has no attribute 'split'

回答

0

这听起来像你想在这里使用extra

东西沿着这些路线:

User.objects.all().select_related().extra(
    select={'is_friend': "user__friends = user"}) 

extraselect参数使用dict包含列和如何计算这些列的键值对。您可能需要修改"user__friends = user"这一块,具体取决于数据和模型的确切性质,但这应该是您希望执行的一般方法。