簡體   English   中英

在 Django 中檢索一對多的 QuerySet

[英]Retrieve one-to-many QuerySet in Django

我有以下型號:

class RecipientList(models.Model):
    name = models.CharField(max_length=255)
    list_type = models.CharField(max_length=255)
    status = models.CharField(max_length=255)

class RecipientListEmail(models.Model):
    email = models.CharField(max_length=255)
    recipient_list = models.ForeignKey(RecipientList, on_delete=models.DO_NOTHING)

我想要做的是檢索所有 RecipientLists,對於每個收件人列表,我想獲得一組與之關聯的 RecipientListEmails。 換句話說,這是一個簡單的一對多(1 個 RecipientList 到多個 RecipientListEmails)關系,我想在一個結果集中獲取所有這些信息。

是否可以在 Django 中進行,而無需遍歷 RecipientList 並單獨查詢 RecipientListEmails 或編寫自己的 SQL 連接?

這是一個查詢,它是您想要的映射嗎?

output = collections.defaultdict(list)
values = RecipientListEmail.objects.values_list('recipient_list__pk', 'email')
for recipient_id, email in values:
    output[recipient_id].append(email)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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