Уведомления

Группа в Telegram: @pythonsu

#1 Март 6, 2008 13:10:42

securelord
От:
Зарегистрирован: 2006-08-31
Сообщения: 129
Репутация: +  0  -
Профиль   Отправить e-mail  

Django данные пользователя из шаблона

Я пытаюсь в шаблоне сделать такое действие:

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})

Что я не так делаю?



Офлайн

#2 Март 6, 2008 14:20:53

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Django данные пользователя из шаблона

Для того чтобы работали контекст процессоры нужно использовать RequestContext



Офлайн

#3 Март 28, 2008 16:37:50

securelord
От:
Зарегистрирован: 2006-08-31
Сообщения: 129
Репутация: +  0  -
Профиль   Отправить e-mail  

Django данные пользователя из шаблона

Daevaorn

По ссылке какой то пример для телепатов. Если можно поясните что сие значит и как используется:

c = RequestContext(request, {
    'foo': 'bar',
}



Офлайн

#4 Март 28, 2008 16:40:25

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Django данные пользователя из шаблона

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))



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version