簡體   English   中英

Django 注釋與特定 object 的關系

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM