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

时间:2016-03-10 15:08:52

标签: django django-models django-queryset

我是Django的新手。 我已经制作了一个新的应用程序来向订阅它的人发送邮件。因此,我已经定义了一个扩展用户模型的模型。

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的方法。

1 个答案:

答案 0 :(得分:0)

在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)