Методы получения значения токена CSRF в шаблонах Django

Чтобы получить значение csrf_tokenв шаблоне Django, вы можете использовать несколько методов. Вот несколько часто используемых подходов:

Метод 1. Используйте тег шаблона {% csrf_token %:
В шаблоне Django вы можете использовать тег шаблона {% csrf_token %, чтобы генерировать и отображать значение токена CSRF. Этот тег создаст элемент HTML со значением токена CSRF в качестве атрибута value. Вы можете получить доступ к этому значению с помощью JavaScript или отправив форму.

Пример использования:

<form method="post">
  {% csrf_token %}
  <!-- Other form fields -->
  <button type="submit">Submit</button>
</form>

Метод 2: доступ к значению токена CSRF через JavaScript.
Вы также можете получить доступ к значению токена CSRF с помощью JavaScript и назначить его переменной для дальнейшего использования. Django устанавливает значение токена CSRF в файле cookie с именем csrftoken, который вы можете получить с помощью JavaScript.

Пример кода JavaScript:

var csrftoken = document.querySelector('[name=csrfmiddlewaretoken]').value;
console.log(csrftoken);

Пример использования в представлении:

from django.template.context_processors import csrf
def my_view(request):
    context = {}
    context.update(csrf(request))
    # Other view logic
    return render(request, 'my_template.html', context)

Пример использования в теге пользовательского шаблона:

from django import template
register = template.Library()
@register.simple_tag(takes_context=True)
def custom_tag(context):
    csrf_token = context.get('csrf_token')
    # Other tag logic
    return csrf_token