You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
4.0 KiB
120 lines
4.0 KiB
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)
|
|
|