我有以下型号:
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)
我尝试做的是检索所有收件人列表,并且对于每个收件人列表,我想获得一组与之关联的RecipientListEmails。换句话说,它是一个简单的一对多(1个RecipientList到许多RecipientListEmails)关系,我想在一个结果集中获取所有这些信息。
是否可以在Django中进行迭代而不迭代RecipientList并单独查询RecipientListEmails或编写自己的SQL连接?
答案 0 :(得分:1)
这是一个查询,是您想要的映射吗?
output = collections.defaultdict(list)
values = RecipientListEmail.objects.values_list('recipient_list__pk', 'email')
for recipient_id, email in values:
output[recipient_id].append(email)