在Django的authenticate方法中,可以使用命名的url kwargs来指定需要跳转到的登录页面。具体实现方法如下:
from django.urls import path
from . import views
app_name = 'myapp'
urlpatterns = [
path('login/', views.login_view, name='login'),
]
from django.contrib.auth import authenticate, login
from django.urls import reverse
from django.shortcuts import redirect
def my_view(request):
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('myapp:index')
else:
return redirect(reverse('myapp:login'))
在这个示例中,如果用户认证失败,就会跳转到login页面。reverse()方法会返回login页面的URL,然后redirect()会将用户重定向到这个URL。