Python Django和查询中的额外字段
我在Django中有一个my查询,它返回一个用户列表 现在,对于每个返回的用户,我想添加一个额外的字段:我需要知道该用户是否已经是当前用户的朋友 我不明白是否必须使用.annotate或extra()或其他。我很困惑 我也尝试过此代码,但不起作用:Python Django和查询中的额外字段,python,django,postgresql,django-orm,Python,Django,Postgresql,Django Orm,我在Django中有一个my查询,它返回一个用户列表 现在,对于每个返回的用户,我想添加一个额外的字段:我需要知道该用户是否已经是当前用户的朋友 我不明白是否必须使用.annotate或extra()或其他。我很困惑 我也尝试过此代码,但不起作用: query = query.annotate(are_friends=Count(Q(user__friends=user))) 我得到了这个错误:'Q'对象没有属性“split”听起来您想在这里使用额外的 大致如下: User.objects.a
query = query.annotate(are_friends=Count(Q(user__friends=user)))
我得到了这个错误:
'Q'对象没有属性“split”
听起来您想在这里使用额外的
大致如下:
User.objects.all().select_related().extra(
select={'is_friend': "user__friends = user"})
extra
的select
参数采用一个dict
,其中包含列的键值对以及如何计算这些列。根据数据和模型的确切性质,您可能需要稍微修改一下“user\uu friends=user”
部分,但这应该是您想要做的事情的一般方法