Пользовательский тег шаблона и защита от CSRF
Django 3.2.6
emails/subscribe.html
<form action="{% url 'emails:subscribe_result' %}" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit">
</form>
Это работает нормально:
class SubscribeFormView(FormView):
template_name = 'emails/subscribe.html'
form_class = SubscribeForm
success_url = 'emails/thanks/'
Но это не так:
from django import template
from django.utils.safestring import mark_safe, SafeString
from django.template import Context, Template
from django.template.loader import get_template
register = template.Library()
from emails.forms import SubscribeForm
@register.simple_tag
def subscribe() -> SafeString:
template = get_template("emails/subscribe.html")
context = {"form": SubscribeForm(), }
result = template.render(context)
return mark_safe(result)
Я получаю:
Forbidden (403)
CSRF verification failed. Request aborted.
Help
Reason given for failure:
CSRF token missing or incorrect.
Можете ли вы помочь мне понять, почему здесь не может быть использован тег пользовательского шаблона? Может быть, поможет запрос через AJAX?
/////////////////////////////