Прежде всего, я должен сказать, что я выполнил несколько SO-ответов ( это и это ), но я не решил свою проблему.
Ну, я использую django.contrib.auth.views.login
(который работает правильно) через django-registration, и я установил параметр next="/home_page/"
в форме входа в систему.Представление, связанное с /home_page/
, оправдано, его возвращение выглядит следующим образом:
return render_to_response('myapp/shop_list.html',
{'shop': entry_list,},
context_instance=RequestContext(request))
Я не отображал никаких других шаблонов между входом в систему и этим представлением, но во время отладки я понял, что User
отсутствует в запросе до этого возврата, поэтому шаблон получает AnonymousUser
, а user.is_authenticated()
возвращает False
Пользователь находится в DDBB, и пароль верен.Как я могу получить зарегистрированного пользователя на этом этапе?
Вот некоторая информация о моем приложении, которая может быть полезна:
settings.py
===========
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
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.contrib.messages.context_processors.messages',
'django.core.context_processors.request',
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'myapp',
'registration',
'django.contrib.admin',
)
login.html
==========
{% block maincontent %}
<form method="post" action="">{% csrf_token %}
{{form.as_p}}
<input name="next" type="hidden" value="/home_page/" />
<input type="submit" value="Login">
</form>
{% endblock %}
link to login
=============
<a href="{% url django.contrib.auth.views.login %}">Login</a>