Понадобилось аутентифицировать пользователя прямо на страничке. Почитал вашу переписку, сделал так.
Сначала подключил urls
от модуля аутентификации в проектный urls.py
:
url(r'^auth/', include('django.contrib.auth.urls', namespace='auth')),
Затем добавил форму в контекст представления:
from django.contrib.auth.forms import AuthenticationForm
def index(request):
context = dict(
form_auth = AuthenticationForm(),
...
(Надо бы её пихать в глобальный контекст)
Далее создал подключаемый виджет:
<div>
{% if user.is_authenticated %}
<form method="post" action="{% url auth:logout %}?next={{ request.path|urlencode }}">
{% csrf_token %}
<input type="submit" name="logout" value="Logout"/>
</form>
{% else %}
<form method="post" action="{% url auth:login %}?next={{ request.path|urlencode }}">
{% csrf_token %}
{% for field in form_auth %}
{{ field }}
{% endfor %}
<input type="submit" name="login" value="Login"/>
</form>
{% endif %}
</div>
Отлично работает под Django 1.4.