2014-12-31 3 views
1

Если я использую эту строку кода;Шаблон не знает, аутентифицирован ли пользователь, почему?

return render_to_response('template.html',{}, context_instance=RequestContext(request)) 

то следующие будут работать;

{% if user.is_authenticated %} 
    <p><a href="/user/user_logout/" class="button">Logout</a></p> 
{% endif %} 

Но если я добавить { «formUsers»: formusers} как следующий он не работает,

return render_to_response('template.html',{'formUsers':formUsers}, context_instance=RequestContext(request)) 

Мне нужно, чтобы добавить форму, однако шаблон не знает, если Пользователь проверку подлинности? Могу ли я обоим?

+0

'{ 'formUsers': formUsers, 'пользователь': user} 'Вы можете добавить пользовательский объект, подобный этому, и отобразить его в своем шаблоне. –

+0

Мне нужен этот пользователь = User.objects.get (user = request.user) –

ответ

1

Почему бы не использовать более общий вид:

return render(request, 'template.html', { 'formUsers': formUsers })

, который должен работать, то в шаблоне сделать

{% if request.user.is_authenticated %} ...

+3

Переменная 'request' не будет в контексте, если не включен параметр' django.core.context_processors.request'. По умолчанию он не включен. 'user' должен быть способен по умолчанию, если только что-то не сконфигурировано, что, вероятно, имеет место здесь. –

+0

не знал, что пользователь всегда был в контексте ... спасибо. Я, должно быть, добавил запрос в промежуточном программном обеспечении давно и забыл :) –

+0

Спасибо, используя render вместо render_to_response, сделал работу ... –

Смежные вопросы