我有以下问题。我基本上想拥有一个自己的登录页面。
views.py
from django.contrib.auth import authenticate, login, logout
from django.shortcuts import render, redirect
def index(request):
return render(request, 'home/index.html')
def login_page(request):
return render(request, 'home/login.html')
def user_login(request):
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
# Redirect to a success page.
return redirect('/profil/')
else:
# Return an 'invalid login' error message.
return redirect('/login/')
urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^login/', views.login_page, name='login'),
url(r'^login/login', views.user_login, name='login_action'),
url(r'^logout/', views.user_logout, name='logout')
]
的login.html
{% extends 'base.html' %}
{% block body %}
<div class="container">
<div class="row">
<div class="col-md-4 col-md-offset-4" id="login-page">
<h1>Login</h1>
<form class="form" action="{% url 'login_action' %}" method="post">
{% csrf_token %}
<div class="form-group">
<label for="username">Benutzername</label>
<input type="text" id="username" class="form-control" name="username"/>
</div>
<div class="form-group">
<label for="password">Passwort</label>
<input id="password" type="password" class="form-control" name="password"/>
</div>
<div>
<button type="submit" class="btn btn-primary">Anmelden</button>
</div>
</form>
</div>
</div>
</div>
{% endblock %}
现在的问题是当我点击提交按钮然后我登陆页面login/login
,但我没有被重定向。我还尝试在user_login
方法中添加一个print语句,以检查它是否达到了这一点,但似乎没有。
我的错误是什么?谢谢你的帮助