【发布时间】:2022-01-15 16:06:54
【问题描述】:
我有一个用户模型
class User(AbstractBaseUser):
name = models.CharField(max_length=100, default='Default')
email = models.EmailField(
verbose_name='email address',
max_length=255,
unique=True,
)
active = models.BooleanField(default=True)
以及相关的 SecondaryEmails 模型
class SecondaryEmails(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='secondary_emails')
email = models.EmailField()
is_validated = models.BooleanField(default=False)
现在我想创建一个方法来获取包含 User 模型的电子邮件和存储在相关 SecondaryEmails 模型中的所有电子邮件的 values_list。
我能够得到一个 values_list 只包含用户模型的电子邮件
>>> User.objects.filter(email='test@gmail.com').prefetch_related('secondary_emails').values_list('email')
>>> <QuerySet [('test@gmail.com',)]>
相关的 SecondaryEmails 模型包含另外两封电子邮件'a1@gmail.com'、'a2@gmail.com'。我希望将这两封电子邮件也附加到 values_list() 中,如下所示:
<QuerySet [('test@gmail.com',), ('a1@gmail.com',), ('a2@gmail.com',)]>
提前谢谢你。
【问题讨论】:
-
去掉
.filter(email='test@gmail.com')方法后有没有试过? -
谢谢。是的,我做到了,但这会转储所有行中的所有电子邮件。我需要以某种方式过滤它。
标签: django django-models django-views django-queryset