帮我写2个试图函数,Django普通用户登录和管理人员登录
时间: 2023-06-12 22:03:15 浏览: 57
以下是两个示例视图函数,一个是普通用户登录,另一个是管理人员登录。
普通用户登录:
```python
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login
def user_login(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(request, username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return redirect('home') # 将用户重定向到主页或其他页面
else:
return render(request, 'login.html', {'error_message': '该用户已被禁用'})
else:
return render(request, 'login.html', {'error_message': '用户名或密码不正确'})
else:
return render(request, 'login.html')
```
管理人员登录:
```python
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login
def admin_login(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(request, username=username, password=password)
if user is not None:
if user.is_active and user.is_staff:
login(request, user)
return redirect('admin_home') # 将用户重定向到管理员主页或其他页面
else:
return render(request, 'admin_login.html', {'error_message': '您没有管理权限'})
else:
return render(request, 'admin_login.html', {'error_message': '用户名或密码不正确'})
else:
return render(request, 'admin_login.html')
```
请注意,这些视图函数需要与适当的模板一起使用,例如 `login.html` 和 `admin_login.html`。在这些模板中,您需要设置一个表单,以便用户输入他们的凭据。您还需要在您的 Django 项目中配置身份验证后端,以便可以使用 Django 的内置身份验证系统进行身份验证。