2015-05-07 1 views
0

У меня есть модель с полем, связанным с пользователем с ForeignKey, мне нужно отправить электронное письмо этому пользователю, когда пользователь выполнит действие, мой вопрос не собирается отправлять вместо этого электронная почта, как получить это письмо. Приложение работает так: пользователь выбирает один из множества вариантов (нажав кнопку), чтобы эта кнопка вызывала идентификатор модели, которая содержит user_id через DetailView, и когда эта кнопка нажата, отправьте электронное письмо. Мое мнение:Получите поле электронной почты пользователя с полями поиска

class NotificationEmail(DetailView): 
    model = Articles 
    template_name = 'email.html' 

    def dispatch(self, request, *args, **kwargs): 
     p = Articles.objects.filter(pk=self.kwargs['pk']) 
     for articles in p: 
      print (articles.user_id__email)  
      to = articles.user_id__email 
      html_content = '<p>This is your email content...</p>' 
      msg = EmailMultiAlternatives('You have an email',html_content,'[email protected]',[to]) 
      msg.attach_alternative(html_content,'text/html') 
      msg.send() 
      return super(NotificationEmail, self).dispatch(request, *args, **kwargs)  

Модели:

class Articles(models.Model): 
    name = models.CharField(max_length=100) 
    user = models.ForeignKey(User) 

Мои вопросы в основном, как я могу получить электронную почту пользователя, который имеет идентификатор этой модели? Im пытается с articles.user_id__email Я полагаю, что это способ поиска поля, я знаю, что это неправильно, но .. Как я могу достичь этого?

+0

Я думаю, что мы должны видеть вашу модель Статьи. Пожалуйста, добавьте это. – grantmcconnaughey

+2

Предполагая, что у него есть поле пользователя, а не 'articles.user.email'? – grantmcconnaughey

+0

@grantmcconnaughey Привет, это было довольно просто, решение было так же, как вы сказали 'articles.user.email', я добавил модель. Благодаря! – dfrojas

ответ

2

Если ваш класс Статьи имеет поле пользователя, то вам нужно сделать это, чтобы получить электронную почту ассоциированной пользователя:

articles.user.email 
Смежные вопросы