django_project_demo/app/views/prettyNumber.py

97 lines
3.1 KiB
Python
Raw Normal View History

2024-08-24 11:25:23 +08:00
"""
靓号管理视图函数
功能实现靓号的增删改查
"""
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/')