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