|
|
|
from django.shortcuts import render
|
|
|
|
from django.contrib.auth import authenticate, login
|
|
|
|
from django.http.response import JsonResponse
|
|
|
|
from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage
|
|
|
|
|
|
|
|
from .forms import UserRegForm
|
|
|
|
from apps.user.models import MyUser
|
|
|
|
|
|
|
|
|
|
|
|
# Create your views here.
|
|
|
|
|
|
|
|
|
|
|
|
def user_reg(request):
|
|
|
|
if request.method == 'GET':
|
|
|
|
form_obj = UserRegForm()
|
|
|
|
print('GET')
|
|
|
|
print(form_obj)
|
|
|
|
return render(request, 'user/user_reg.html', {'form_obj': form_obj})
|
|
|
|
if request.method == 'POST':
|
|
|
|
form_obj = UserRegForm(request.POST, request.FILES)
|
|
|
|
print('POST')
|
|
|
|
print(form_obj)
|
|
|
|
if form_obj.is_valid():
|
|
|
|
uname = request.POST.get('username')
|
|
|
|
users = MyUser.objects.filter(username=uname)
|
|
|
|
if users:
|
|
|
|
for user in users:
|
|
|
|
user_img = user.user_img
|
|
|
|
info = '用户已经存在'
|
|
|
|
else:
|
|
|
|
# 接受页面传参后拼接必传字段
|
|
|
|
form_obj.cleaned_data.pop('re_password')
|
|
|
|
form_obj.cleaned_data['is_staff'] = 1
|
|
|
|
form_obj.cleaned_data['is_superuser'] = 0 # 非管理员
|
|
|
|
# 插入数据库
|
|
|
|
user = MyUser.objects.create_user(**form_obj.cleaned_data)
|
|
|
|
user_img = user.user_img
|
|
|
|
info = '注册成功,请登录'
|
|
|
|
return render(request, 'user/user_reg.html', {'form_obj', form_obj})
|
|
|
|
else:
|
|
|
|
errors = form_obj.errors
|
|
|
|
print(errors)
|
|
|
|
return render(request, 'user/user_reg.html', {'form_obj': form_obj, 'errors': errors})
|
|
|
|
|
|
|
|
|
|
|
|
def user_login(request):
|
|
|
|
return render(request, 'user/user_login.html')
|
|
|
|
|
|
|
|
|
|
|
|
def ajax_login_data(request):
|
|
|
|
print('ajax_login_data')
|
|
|
|
uname = request.POST.get('username')
|
|
|
|
pwd = request.POST.get('password')
|
|
|
|
json_dict = {}
|
|
|
|
if uname and pwd: # 不为空时触发登录逻辑
|
|
|
|
if MyUser.objects.filter(username=uname): # 查找数据库中是否存在该用户
|
|
|
|
user = authenticate(username=uname, password=pwd) # 验证用户
|
|
|
|
if user: # 验证通过
|
|
|
|
if user.is_active: # 验证用户是否为激活用户
|
|
|
|
login(request, user) # 完成登录操作
|
|
|
|
json_dict['code'] = '1000'
|
|
|
|
json_dict['msg'] = '登录成功'
|
|
|
|
else:
|
|
|
|
json_dict['code'] = '1002'
|
|
|
|
json_dict['msg'] = '密码错误'
|
|
|
|
else:
|
|
|
|
json_dict['code'] = '1003'
|
|
|
|
json_dict['msg'] = '用户不存在'
|
|
|
|
else:
|
|
|
|
json_dict['code'] = '1004'
|
|
|
|
json_dict['msg'] = '用户名密码为空'
|
|
|
|
return JsonResponse(json_dict)
|
|
|
|
|
|
|
|
|
|
|
|
def index(request):
|
|
|
|
if request.method == "GET":
|
|
|
|
level = request.GET.get("level")
|
|
|
|
truename = request.GET.get("truename", "")
|
|
|
|
status = request.GET.get("status")
|
|
|
|
|
|
|
|
search_dict = dict()
|
|
|
|
if level:
|
|
|
|
search_dict["level"] = level
|
|
|
|
if truename:
|
|
|
|
search_dict["truename"] = truename
|
|
|
|
if status:
|
|
|
|
search_dict["status"] = status
|
|
|
|
|
|
|
|
datas = MyUser.objects.filter(**search_dict).order_by("-id")
|
|
|
|
|
|
|
|
page_size = 5 # 每页显示的行数
|
|
|
|
try:
|
|
|
|
if not request.GET.get("page"):
|
|
|
|
current_page = 1
|
|
|
|
current_page = int(request.GET.get("page"))
|
|
|
|
except:
|
|
|
|
current_page = 1
|
|
|
|
|
|
|
|
paginator = Paginator(datas, page_size)
|
|
|
|
try:
|
|
|
|
users = paginator.page(current_page)
|
|
|
|
except PageNotAnInteger:
|
|
|
|
users = paginator.page(1)
|
|
|
|
except EmptyPage:
|
|
|
|
users = paginator.page(1)
|
|
|
|
context = {
|
|
|
|
'level': level,
|
|
|
|
'truename': truename,
|
|
|
|
'status': status,
|
|
|
|
'users': users
|
|
|
|
}
|
|
|
|
print(context)
|
|
|
|
return render(request, 'user/index.html', context=context)
|
|
|
|
|
|
|
|
|
|
|
|
def delete(request, _id):
|
|
|
|
obj = MyUser.objects.filter(id=_id)
|
|
|
|
obj.delete()
|
|
|
|
json_dict = dict(code=200, msg='删除数据成功')
|
|
|
|
return JsonResponse(json_dict)
|