python - 在 Django 中检索一对多查询集

标签 python 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)

我想要做的是检索所有收件人列表,对于每个收件人列表,我想获取一组与其关联的收件人列表电子邮件。换句话说,这是一种简单的一对多(1 个 RecipientList 到多个 RecipientListEmail)关系,我想在一个结果集中获取所有这些信息。

是否可以在 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)

关于python - 在 Django 中检索一对多查询集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41732350/

相关文章:

python - 以有效的方式将类读写到文件中

python - django南部多次迁移

Django+干草堆+嗖嗖: how to deal with language inflection

python - 无法将包上传到 PyPI : 410 Gone

python - 我不明白python中的这种递归方法来生成排列

python - 如何使用 "pytest"中另一个文件中的函数和类?

python - Django 模型 radio 输入

ios - Django:只接受来 self 的应用程序的请求

python - TypeError : the JSON object must be str, 不是 'DetailedResponse'

json - 需要使用 Curl 上传 JSON 和图像文件