2015-08-14 2 views
0

Кто-нибудь знает, почему следующий делает мой шаблон OK:CSRF маркер не отображается, если используется контекст ({ДИКТ}) против всего {Dict}

c= {'render_form' : form } 
return render(request, 'page1.html', c) 

но следующий не делает маркер CSRF:

c= Context({'render_form' : form}) 
return render(request, 'page1.html', c) 

шаблон выглядит следующим образом:

<form method="post"> 
    {% csrf_token %} 
    {{ render_form }} 
    <input type="submit" value="Submit" class='btn' id="submitbutton" name="_submit" /> 
</form> 

Я хочу, чтобы render() и я хотел бы к void с использованием locals().

+0

Я не понимаю, почему вы должны использовать контекст явно, хотя. Просто передайте словарь, вот что вы должны делать. –

+0

Я думал, что должен. Я пытался следовать примерам в https://docs.djangoproject.com/en/1.8/ref/templates/api/#playing-with-context. Я просто придерживаюсь той, которая работает тогда. – woodduck

ответ

1

Зависит от версии Django, но метод визуализации используется взять два контекста, связанных с аргументами, context и context_instance, последний ожидает Context или RequestContext объект, первый словарь. В документации есть некоторые конкретные детали устаревания:

https://docs.djangoproject.com/en/1.8/topics/http/shortcuts/#optional-arguments

+0

спасибо, что помогло. Я использую 1.8. Я думал, что должен передать объект контекста. – woodduck