[英]Django annotate relation with specific object
我的 Django 數據庫中有兩個模型:
class Member(models.Model):
signed_up_to=models.ManyToManyField(Piece)
class Piece(models.Model):
title = models.CharField(max_length=200,null=True,blank=True)
當我從我的數據庫中提取 Piece 對象時,我想注釋(Bool 或 Integer)該 Piece 是否出現在特定成員的signed_up_to中。 我在互聯網上四處尋找答案,但沒有成功。 希望有人可以幫助我!
鑒於Member
object 是member
,您可以使用Exists
子查詢 [Django-doc] :
from django.db.models import Exists, OuterRef
Piece.objects.annotate(
has_member=Exists(
Member.signed_up_to.through.objects.filter(
piece_id=OuterRef('pk'),
member_id=.pk
)
)
)
因此,如果member
在其signed_up_to
關系中有此Piece
object,則has_member
將為True
,否則為False
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.