2017-08-03 107 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"), 
]