Я пытаюсь подписать учетную запись электронной почты в рассылку с помощью Django, когда я пытаюсь нажать кнопку Go, я получаю ошибку Запрещено (токен CSRF отсутствует или неверен.):
Вот метод views.py:
def newsletterSubscribe(request):
try:
form = NewsletterUserSignUpForm(request.POST or None)
if form.is_valid():
instance = form.save(commit=False)
if NewsletterUser.objects.filter(email=instance.email).exists():
messages.warning(request, _('Alerta! El correo ingresado ya se encuentra suscrito.'),
'alert alert-warning alert-dismissible')
else:
instance.save()
messages.success(request, _('Correo agregado con exito!'),
'alert alert-success alert-dismissible')
subject = _('Gracias por unirse a nuestro boletín')
message = _("""Bienvenido al boletín de ADA Robotics. Si deseas no estar suscrito visita:
https://127.0.0.1:8000/unsubscribed""")
msg = MIMEMultipart('alternative')
msg['From'] = settings.EMAIL_HOST_USER
msg['To'] = instance.email
msg['Subject'] = subject
part = MIMEText(message, 'plain')
msg.attach(part)
mail = smtplib.SMTP(settings.EMAIL_HOST, settings.EMAIL_PORT, timeout=20)
mail.starttls()
"""
template = get_template("myapp/sample_template.html")
context = Context(context_data)
body_html = template.render(context_data)
body_text = strip_tags(body_html)
part1 = MIMEText(body_text, 'plain')
part2 = MIMEText(body_html, 'html')
msg.attach(part1)
msg.attach(part2)
"""
emailto = [instance.email]
mail.login(settings.EMAIL_HOST_USER, settings.EMAIL_HOST_PASSWORD)
mail.sendmail(settings.EMAIL_HOST_USER, emailto, msg.as_string())
mail.quit()
"""from_email = settings.EMAIL_HOST_USER
to_email = [instance.email]
send_mail(subject=subject, from_email=from_email, recipient_list=to_email, message=message, fail_silently=False)"""
context = {
'form': form,
}
template = 'subscribed.html'
#return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
return render(request, template, context)
except Exception as ex:
return render(request, '404.html')
Вот код шаблона:
<form id="newsletterForm" action="{% url "newsletterSubscribe" %}" method="POST" class="mr-4 mb-3 mb-md-0">
{% csrf_token %}
<div class="input-group input-group-rounded">
<input class="form-control form-control-sm bg-light" placeholder="Email Address" name="email" id="newsletterEmail" type="text">
<span class="input-group-append">
<button class="btn btn-light text-color-dark" type="submit"><strong>GO!</strong></button>
</span>
</div>
</form>
Вот мой urls.py:
path('contact/', contact, name="contact"),
path('subscribed/', newsletterSubscribe, name="newsletterSubscribe"),
У меня есть промежуточное программное обеспечение, добавленное в мой файл настроек, а также миграция базы данных для создания уже созданных таблиц.
Я пытаюсь создать форму для информационного бюллетеня, расположенную в базе. html шаблоны, чтобы он мог быть доступен на всех других страницах веб-приложения.