""" 靓号管理视图函数 功能:实现靓号的增删改查 """ from django.shortcuts import render, HttpResponse, redirect from app.models import PrettyNumber # 数据表类 from app.utils.form import PrettyNumberForm, PrettyNumberEditForm # 表单ModelForm类 from app.utils.pagination import Pagination # 导入分页导航条 def pn_list(request): """ 靓号列表 """ # 第一次显示的时候,查询条件也就是data_dict为空,所以查询所有数据 data_dict = {} search_data = request.GET.get('searchMobile', '') if search_data: data_dict['mobile__contains'] = search_data # ########## 分页准备数据阶段 ########## # 字典格式: queryset = {‘mobile__contains’: '9999'} # **data_dict传入字典,必须以**打头 # order_by('-level') 倒序排列 queryset = PrettyNumber.objects.filter(**data_dict).order_by('-level') page_object = Pagination(request, queryset) # 实例化分页导航条类 page_queryset = page_object.page_queryset # 获得分完页的数据结果 # ########## 分页数据准备结束 ########## # 生成分页导航条 page_nav = page_object.html() # 把所有参数生成字典传递给前端 context = { 'search_data': search_data, 'queryset': page_queryset, # 分完页的数据结果 'page_nav': page_nav # 生成的页码导航条 } return render(request, 'PrettyNumber_list.html', context) def pn_add(request): """ 增加靓号 """ if request.method == 'GET': form = PrettyNumberForm() # 实例化表单模型类 return render(request, 'PrettyNumber_add_modelform.html', {'form': form}) # POST请求 form = PrettyNumberForm(data=request.POST) # 拿到所有提交过来的数据 if form.is_valid(): # 数据校验 # 如果你想对数据表中的字段另外再传递值来保存,就用 # form.instance.字段名 = '值' # form.instance.password = '0000' # 默认密码是0000 form.save() # 向 model = PrettyNumber 定义的表保存数据 return redirect('/PrettyNumber/list/') else: # form中带了POST过来的请求 return render(request, 'PrettyNumber_add_modelform.html', {'form': form}) def pn_edit(request, nid): """ 靓号编辑 """ row_data = PrettyNumber.objects.filter(id=nid).first() if request.method == 'GET': form = PrettyNumberEditForm(instance=row_data) # 将查询到的对象传递给form return render(request, 'PrettyNumber_edit_modelform.html', {'form': form}) # POST请求 form = PrettyNumberEditForm(data=request.POST, instance=row_data) # 拿到所有提交过来的数据 if form.is_valid(): # 数据校验 form.save() # 向 model = UserInfo 定义的表保存数据 return redirect('/PrettyNumber/list/') else: # form中带了POST过来的请求 return render(request, 'PrettyNumber_edit_modelform.html', {'form': form}) def pn_delete(request, nid): """ 靓号删除 """ PrettyNumber.objects.filter(id=nid).delete() return redirect('/PrettyNumber/list/')