使用自定义模型过滤用户模型

Filter User model using custom model

我是 Django 的新手。 我制作了一个通讯应用程序来向订阅 it.Hence 的人发送邮件,我定义了一个扩展用户模型的模型。

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    contact_number = models.CharField(max_length=10,null=True)
    address = models.CharField(max_length=200,null=True,blank=True)
    subscribe_to_newsletter = models.BooleanField(default=False)

我如何访问那些已订阅时事通讯的用户的电子邮件?我找不到过滤用户和关联 UserUserProfile 的方法。

在 django 中,您可以 filter across relationships 使用 __。 这将为您提供所有已订阅时事通讯的用户:

User.objects.filter(userprofile__subscribe_to_newsletter=True)

如果您只想要电子邮件,您可以使用 values_list。这将为您提供电子邮件列表:

User.objects.filter(userprofile__subscribe_to_newsletter=True).values_list('email', flat=True)