Как передать имя пользователя в HTML шаблон электронной почты в Django, используя msg.send () - PullRequest
0 голосов
/ 24 февраля 2019

Я новичок в кодировании Django.В настоящее время я работаю над DRF Django Rest Framework вместе с API.Я пытался отправить шаблон электронной почты в формате HTML с вложением, как только пользователь зарегистрируется.Я добился отправки того же, но хочу передать динамическое содержимое, такое как электронная почта пользователя, зарегистрированного в шаблоне электронной почты HTML из views.py, но не смог этого сделать.Я использую msg.send ().

IN VIEWS.PY:

def attachment(request):
   queryset = User.objects.all()
   em=[]
   h=[]
   for star in queryset.iterator():
       em.append(star.email)
   print(em)    
   h=em[-1]
   msg = mail.EmailMultiAlternatives(
        subject = 'attachment',
        body = 'Hi, Welcome!',
        from_email = 'anushstella97@gmail.com',
        to = [h],
        connection = con
        )
   msg.attach_file('C:/Users/hp/Downloads/APIV1-master/APIV1- 
     master/polls/img.jpg')
   msg_html = render_to_string('C:/Users/hp/Anaconda3/Lib/site- 
  packages/allauth/templates/account/email/email_confirmation_message.html' 
  , {"email": request.user.email})

   msg.send()
   return HttpResponse('<h1>Created</h1>')

В ШАБЛОНЕ HTML:

<p>Thanks for signing up! We're excited to have you as an early user.</p>
                <p> Your registered email is : </p>
                <p>
                    <strong> {{ email }} </strong></p>

1 Ответ

0 голосов
/ 25 февраля 2019

Чтобы отобразить шаблон, вы можете использовать render_to_string из from django.template.loader и передать вместе с ним переменные контекста ..

Например,

from django.template.loader import render_to_string
html = render_to_string("account/email/email_confirmation_message.html", {"email": request.user.email})

Внутри email_confirmation_message.html:

Hi {{ email }},
...
...