Найти - Пользователи
Полная версия: Django данные пользователя из шаблона
Начало » Django » Django данные пользователя из шаблона
1
securelord
Я пытаюсь в шаблоне сделать такое действие:

index.html
{% if user.is_authenticated %}
    <p>Прывэд, {{ user.username }}</p>
{% else %}
    <p>Зарегистрируйся</p>
{% endif %}

В документации сказано, что эта конструкция возможна только если в настройках будет указано:
TEMPLATE_CONTEXT_PROCESSORS = ('django.core.context_processors.auth')

К сожалению ничего не получается.

Привожу шаблон простой регистрации:

{% block content %}
{% if form.has_errors %}
<p>Your username and password didn't match. Please try again.</p>
{% endif %}
<form method="post" action=".">
<table>
<tr><td><label for="id_username">Username:</label></td><td>{{ form.username }}</td></tr>
<tr><td><label for="id_password">Password:</label></td><td>{{ form.password }}</td></tr>
</table>
<input type="submit" value="login" />
<input type="hidden" name="next" value="{{ next }}" />
</form>
{% endblock %}

и вьювер, который перенаправляет на index.html:
def index(request):
    if request.user.is_authenticated():
        val = 'Ok'
        return render_to_response('index.html', {'val': val})
    else:
        val = 'No'
        return render_to_response('index.html', {'val': val})

Что я не так делаю?
Александр Кошелев
Для того чтобы работали контекст процессоры нужно использовать RequestContext
securelord
Daevaorn

По ссылке какой то пример для телепатов. Если можно поясните что сие значит и как используется:
c = RequestContext(request, {
    'foo': 'bar',
}
Александр Кошелев
Note

If you’re using Django’s render_to_response() shortcut to populate a template with the contents of a dictionary, your template will be passed a Context instance by default (not a RequestContext). To use a RequestContext in your template rendering, pass an optional third argument to render_to_response(): a RequestContext instance. Your code might look like this:
def some_view(request):
    # ...
    return render_to_response('my_template.html',
                              my_data_dictionary,
                              context_instance=RequestContext(request))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB