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)