Эта функция просмотра:
@login_required
def dashboard(request):
from myproject.myapp.models import UserProfile
k = UserProfile.objects.get( user=request.user.pk ).known
return render_to_response('dashboard.html', {'KNOWN': k, , context_instance=RequestContext(request))
Переходит к этому шаблону:
{% if user.is_authenticated %}
{{ user.username }}
{% else %}
Login link
{% endif %}
{{ KNOWN }}
- Я уже авторизовался.
- Страница не перенаправляется на LOGIN_URL (поэтому @login_required думает, что я вошел в систему, я думаю)
- {{ ИЗВЕСТНО }} отображается отлично
- {{ user.username }} не отображается
Как это возможно? Конечно, если login_required работает, и ему удалось получить ИЗВЕСТНОЕ, значит, пользователь должен где-то существовать?
Как я могу это отладить?
:-)
ОБНОВЛЕНИЕ: если я удалю:
TEMPLATE_CONTEXT_PROCESSORS = ('django.core.context_processors.request',)
В настройках это работает.
Однако при удалении другие страницы, использующие {{ request.get_full_path }} в шаблонах, не загружаются.
Эх.
ОБНОВЛЕНИЕ 2:
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.core.context_processors.request",)
Если вы просто добавите строку запроса отдельно, она отключит все остальные, которые используются по умолчанию. Д'О!
ОБНОВЛЕНИЕ 3: Думал, что это исправит, к сожалению, все еще не работает.
ОБНОВЛЕНИЕ 4: Замеченная опечатка в другом месте может подтвердить, что ответ Марка Лавина исправил ее :)