假設
class Msg(models.Model) 。
...
likes = models.ManyToManyField(User, ...)
channelname = models.CharField(...)
現在我的查詢集是
queryset = Msg.objects.filter(channelname='home')
在這之后我應該怎么做才能得到類似的東西呢
[{id:xyz, liked=true},{id: tuv,like=true},{id:abc,like:false}]
uj5u.com熱心網友回復:
你可以使用多對多欄位的Exists()子查詢來注釋貫穿模型:
from django.db.models import Exists, OuterRef
liked_subquery = Msg.likes.through.objects.filter(
msg=OuterRef('pk'), # Filter for outer queries Msg instance)
user=some_user_instance # filter for user whose like we are checking for filter(
channelname='home').注釋(
).注釋(
liked=Exists(like_subquery)
).values('id', ' liked')
print(list(queryset)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/324207.html
標籤:
