要创建一个不使用Django默认登录表单的登录页面,可以按照以下步骤进行:
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login
def login_view(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return redirect('home')
else:
error_message = 'Invalid username or password.'
else:
error_message = ''
return render(request, 'login.html', {'error_message': error_message})
login.html 来显示登录页面和处理登录表单的提交:{% if error_message %}
{{ error_message }}
{% endif %}
urls.py 文件中添加对应的 URL 映射:from django.urls import path
from .views import login_view
urlpatterns = [
path('login/', login_view, name='login'),
# 其他 URL 映射...
]
通过以上步骤,你可以创建一个不使用Django默认登录表单的自定义登录页面。当用户提交登录表单时,视图函数会验证用户的凭据,如果验证成功,则登录用户并重定向到主页;否则,显示错误消息并保留在登录页面。