2015-05-09 88 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"這一塊,具體取決於數據和模型的確切性質,但這應該是您希望執行的一般方法。