2017-08-03 83 views
1

我正在構建我的第一個Django Web應用程序,並且有一個問題似乎無法找到解決方案。如何使用引導登錄表單來驗證django用戶

我的主頁(index.html)是基於引導程序的,它在窗體中顯示一些文本和引導日誌。

允許從該引導登錄表單進行Django身份驗證的正確方法是什麼?

我試着根據在這裏和那裏找到的建議在互聯網上的解決方案,但我不斷收到錯誤。

這裏是我的代碼:

裏面的index.html

<div class="inner cover"> 
    <h1 class="cover-heading">Admin Interface</h1> 
    <p class="lead">Welcome to your dedicated Admin Interface.<br>Log in to access your dashboard and control panel.</p> 
    <form class="form-signin"> 
    <label for="inputEmail" class="sr-only">Email address</label> 
    <input type="email" id="inputEmail" class="form-control" placeholder="Email address" required autofocus> 
    <label for="inputPassword" class="sr-only">Password</label> 
    <input type="password" id="inputPassword" class="form-control" placeholder="Password" required> 
    <div class="checkbox"> 
     <label> 
     <input type="checkbox" value="remember-me"> Remember me 
     </label> 
    </div> 
    <button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button> 
    </form> 
</div> 

裏面的myapp/urls.py

from django.conf.urls import include, url 
from user import views 
from django.contrib.auth import views as auth_views 


urlpatterns = [ 
    url(r'^$', views.index, name='index'), 
] 

在我的主urls.py

from django.conf.urls import include 
from django.conf.urls import url 
from django.contrib import admin 
from django.contrib.auth import views 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'', include('user.urls')), 

] 

我嘗試添加形式我thod =「post」action =「{%url'django.contrib.auth.views.login'%}但它不起作用。

你對我應該怎麼做有什麼想法嗎?

非常感謝您提前。

Giulia

+0

我不認爲你的問題與引導做的,因爲它不會碰你的服務器上,如果您需要登錄您可以創建一個登錄視圖中,你會在日誌用戶在表單中的信息正確時。然後你可以使用'{%url'name_of_your_view'%}' – Lindow

回答

1

您可以將url放在urls.py上。

from django.conf.urls import include 
from django.conf.urls import url 
from django.contrib import admin 
from django.contrib.auth import views as auth_view 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'', include('user.urls')), 
    url(r'^login/$', auth_view.login, name="login"), 

] 

然後將其路由的行動

<form method='POST' action = '{% url 'login' %}' class="form-signin"> 
+0

你好,感謝你的回覆,我已經嘗試了你的解決方案,但是我得到錯誤名'auth-view'沒有定義。我怎樣才能定義它? – Giulia

+0

你寫'auth-view'而不是'auth_view'。 '從django.contrib.auth導入視圖爲auth_view' –

+0

也看到了url的第4行 –

0

剛剛嘗試在你的主urls.py

from django.contrib.auth import views 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^login/$', views.LoginView.as_view(template_name='myapp/index.html')), 
] 

添加 '登錄' 和你的正確的道路上更改template_name='myapp/index.html',更多的細節using-the-views

0

或者,您也可以使用Logi如下面的nView

from django.contrib.auth.views import LoginView 

urlpatterns = [ 
    ... 
    url(r'^login/$', LoginView.as_view(), name="login"), 
]