0
我有Django的身份驗證和登錄視圖的問題。我一直在與問候的官方文檔下面創建一個自定義登錄:https://docs.djangoproject.com/en/1.9/topics/auth/default/#how-to-log-a-user-inDjango身份驗證不生成正確的html
我創建了一個自定義登錄視圖:
def myLogin(request):
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return redirect(reverse('main'))
else:
return redirect(reverse('login'))
return render(request, "login.html", {'user': user})
,這裏是我的模板,這是來自官方的文件複製: https://docs.djangoproject.com/en/1.9/topics/auth/default/#all-authentication-views
{% extends "base.html" %}
{% block content %}
{% if form.errors %}
<p>Your username and password didn't match. Please try again.</p>
{% endif %}
{% if next %}
{% if user.is_authenticated %}
<p>Your account doesn't have access to this page. To proceed,
please login with an account that has access.</p>
{% else %}
<p>Please login to see this page.</p>
{% endif %}
{% endif %}
<form method="post" action="{% url 'login' %}">
{% csrf_token %}
<table>
<tr>
<td>{{ form.username.label_tag }}</td>
<td>{{ form.username }}</td>
</tr>
<tr>
<td>{{ form.password.label_tag }}</td>
<td>{{ form.password }}</td>
</tr>
</table>
<input type="submit" value="login" />
</form>
{% endblock %}
我的網址是這樣的:
from authentication.views import myLogin
from users.views import baseView
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^main/', baseView, name='main'),
url(r'^login/', myLogin, name='login'),
url(r'^logout/', auth_views.logout, name='logout'),
]
當我嘗試訪問登錄頁面時,它會生成頁面,但只有登錄按鈕,而不是寫入用戶名和密碼所需的表單域。這是爲什麼發生?當使用內置登錄時,登錄功能按預期工作,但恐怕我無法使用它,因爲我需要一些額外的功能。