我在Django中有一个我的查询,它返回一个用户列表。
现在,对于每个返回的用户,我想添加一个额外的字段:我需要知道用户是否已经是当前用户的朋友。
我不明白我是否必须使用.annotate或extra()或其他。我很困惑。
我也试过这段代码但不行:
query = query.annotate(are_friends=Count(Q(user__friends=user)))
我收到此错误:'Q' object has no attribute 'split'
答案 0 :(得分:0)
听起来你想在这里使用extra
。
这些方面的东西:
User.objects.all().select_related().extra(
select={'is_friend': "user__friends = user"})
extra
的{{1}}参数需要select
,其中包含列的键值对以及如何计算这些列。根据数据和模型的确切性质,您可能需要稍微修改dict
部分,但这应该是您要做的事情的一般方法。