来自queryset的django send_mail

时间:2010-03-31 08:12:33

标签: python django

我正在尝试使用django send_mail方法。我遇到了两个问题,特别是将邮件地址从列表转换为要在收件人中使用的csv。第二个问题是从通知模型中获取用户电子邮件列表。

我的模特

class notifications(models.Model):
    notID = models.AutoField(primary_key=True)
    notSubject = models.CharField(max_length=100)
    notBody = models.TextField()
    notDate =  models.DateField(auto_now_add=True)
    notRecepients =  models.ManyToManyField(UserProfile, related_name='recepients')
    notPoster = models.ForeignKey(UserProfile,related_name='notposter') 
    deleted = models.BooleanField()

    def __unicode__(self):
    return u'%s ' % ( self.notSubject)

class UserProfile(User):
    onames = models.CharField(max_length=30, blank=True)
    phoneNumber = models.CharField(max_length=15, blank=True)
    regNo = models.CharField(max_length=15)
        image = models.ImageField(max_length=100,upload_to='photos/%Y/%m/%d', blank=True, null=True, default='photos/2010/03/placeholder.jpg')
    course = models.CharField(max_length=30, blank=True, null=True)
    timezone = models.CharField(max_length=50, default='Africa/Nairobi')
    smsCom = models.BooleanField()
    mailCom = models.BooleanField()


class notifications_sms_mail(models.Model):
    notId = models.OneToOneField(notifications)
    sms = models.BooleanField()
    email = models.BooleanField()

我的观点

def notif_sms_mail(request):
    user = UserProfile.objects.get(pk=request.session['_auth_user_id'])
    mailform = notif_sms_mail_Form(request.POST)
    if mailform.is_valid():
        notid=request.POST['notId']
        mailform.save()
        notif = notifications.objects.get(deleted='0', notID = notid)
        rec = (UserProfile.objects.values('email')).filter(mailCom='1')

        mail = notifications_sms_mail.objects.get(email='1', notId=notid)
        if notif.notID == mail.notId:
            send_mail(notSubject, notBody, 'from ****@gmail.com',rec, fail_silently=False)

1 个答案:

答案 0 :(得分:2)

UserProfile.objects.filter(mailCom='1').values_list('email', flat=True)