如何使用 bootstrap 登录表单来验证 django 用户

How to use bootstrap login form to authenticate django users

我正在构建我的第一个 Django Web 应用程序,但有一个问题我似乎找不到解决方案。

我的主页 (index.html) 是基于 bootstrap 的,它显示了一些文本以及 bootstrap 登录表单。

从 bootstrap 登录表单允许 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')),

]

我尝试添加表单 method="post" action="{% url 'django.contrib.auth.views.login' %} 但它不起作用。

你知道我应该怎么做吗?

非常感谢您。

朱莉娅

您可以将 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">

或者,您也可以使用 LoginView,如下所示:

from django.contrib.auth.views import LoginView

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