2010-03-31 51 views
1

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

我的模型

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) 

回答

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