У меня есть особая форма, которая создается динамически из базы данных, которую я хочу использовать в шаблоне Django.Проблема в том, что для этого требуется встроенный токен csrf.Так что, на мой взгляд, я хотел бы создать этот токен, чтобы я мог вставить его в форму там.Однако мне не повезло.Частично это работает:
from django.middleware import csrf
token = request.META.get('CSRF_COOKIE', None)
if token is None:
token = csrf._get_new_csrf_key()
request.META['CSRF_COOKIE'] = token
request.META['CSRF_COOKIE_USED'] = True
Первая часть работает хорошо - если токен присутствует, он используется.Однако, если токен имеет значение None и вызывается _get_new_csrf_key (), то он не работает с первого раза - мне нужно обновить страницу, прежде чем она заработает.Как правильно создать токен в представлении?
Дополнительные пояснения:
Форма поступает из базы данных.Итак, у меня есть запись в базе данных, которая содержит форму, которую я читаю в переменную:
page_content = '<form>.....__csrf-placeholder__</form'
Затем в шаблоне я делаю:
{{ page_content }}
Вот почему я могу 't использовать {% csrf_token%} внутри шаблона.Прямо сейчас я использую функцию замены в представлении, поэтому заменим csrf-placeholder для фактического токена.Вот почему я пытаюсь это сделать.