def klogin(request): if request.method == 'POST': form = LoginForm(request.POST) if form.is_valid(): username = form.cleaned_data['username'] password = form.cleaned_data['password'] print(username) print(password) user = authenticate(request, username=username, password=password) if user is not None: login(request, user) return redirect('/backApp/kindex/') else: form.add_error(None, '用户名或密码错误') else: form = LoginForm() print(111) return render(request, 'klogin.html', {'form': form})后端视图函数如上所示,前端点击登陆后刷新界面未跳转指定界面,成功解决方法
时间: 2023-12-02 22:03:38 浏览: 37
可以尝试修改代码如下:
```python
from django.urls import reverse
def klogin(request):
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return redirect(reverse('backApp:kindex'))
else:
form.add_error(None, '用户名或密码错误')
else:
form = LoginForm()
return render(request, 'klogin.html', {'form': form})
```
主要修改是在成功登陆后使用 `reverse` 函数获取到指定视图的 URL,然后通过 `redirect` 函数进行跳转。同时,对代码进行了一些格式上的调整,使其更加清晰易读。