1.模糊查询

由于Q的可以传递字符串属性,可以进行拼接__contains 进行搜索

2.未报名筛选,未报名的存储在models的 enroll_status_choices中,存储的是

enroll_status_choices = (('signed', "已报名"),
('unregistered', "未报名"),
('studying', '学习中'),
('paid_in_full', "学费已交齐")) 需要找到元祖对应的字段,在前段用get__signed__display显示 方法,找到select选择的属性,点击属性的时候讲原有的optiopn 替换成那4个状态,进行change的查询
     $("#s1").change(function () {
if ($(this).val() === "status") {
let s1 = `
<select name="q" id="s2">
<option value="signed">已报名</option>
<option value="unregistered">未报名</option>
<option value="studying">学习中</option>
<option value="paid_in_full">学费已交齐</option>
</select>
`;
$(this).next().replaceWith(s1)
}
})

未报名筛选

3.批量处理

进行批量处理时,需要将文件与checkbox 写入一个form表单,在循环的文件加入checkbox循环

运用获取批量处理的value 执行面向对象的反射

<td><input type="checkbox" name="select_pk_list" value="{{ customer.pk }}"></td>

     def post(self,request):
#批量处理
print(request.POST)
func_str=request.POST.get("action")
data=request.POST.getlist("select_pk_list")
if not hasattr(self,func_str):
return HttpResponse("非法输入")
else:
func=getattr(self,func_str)
queryset=Customer.objects.filter(pk__in=data)
func(request,queryset)
return redirect(request.path)
def patch_delete(self,request,queryset):
queryset.update(sex="male")

批量处理

4.添加客户

通过forms.ModelForm 进行 MODELFORM操作,  引入form  定义form表单

class CustomerModelForm(forms.ModelForm):

class=MATE  fields=__all__""  model=Customer

通过传递form

form=CustomerModelForm(request.POst)

在页面上循环取出

成功返回添加页面

失败返回添加页面

5<>

编辑

唯一于添加不同的是

urls 通过re_path进行捕获到主键

edit_obj=request.POST.get(px=id)

form=CustomerModelForm(request.POst,instance=edit.obj)

来区分

这里若是要返回上一级,则需要额外她在在页面添加一个他要返回的上一级地址,

因为他只向的是edit1这个标准路由,要去到上一级需要拼接并且存储在返回的编辑标签上

然后利用redirect重定向 方法为

path=request.path

next="?next=%s",%spath

6>

公户转私户

用反射将

consultant=request.user
即可    7>
未报名颜色
def get_status(self):
status_color={
"studying":"green",
"signed":"#B03060",
"unregistered":"red",
"paid_in_full":"blue"
}
return mark_safe("<span style='color:white'>%s</span>"%(status_color[self.status],self.get_status_display()))

在前端传递的是对象,有自己的方法,,可以再models 生成一个方法,让这个方法被调用,返回值就是这个方法的结果

最新文章

  1. 关于PHP语言
  2. jq实现全选、全不选、反选
  3. SQL SERVER 内存分配及常见内存问题 DMV查询
  4. c point
  5. 图的DFS递归和非递归
  6. linux和android开发链接
  7. Codeforces 1037E Trips
  8. 调皮的udp组播技术
  9. 不利用C语言库函数,实现字符串相关函数
  10. Android App启动速度优化
  11. flask客户端测试使用设置cookie参数
  12. 监控JVM内存使用情况,剩余空间小于2M时报警
  13. H5网页适配 iPhoneX,就是这么简单(转)
  14. for循环添加的闭包问题
  15. nodejs的__dirname,__filename,process.cwd()区别
  16. Windows+Git+TortoiseGit+COPSSH 安装教程及问题收集
  17. C语言基础语法
  18. Linux常用命令的解释
  19. 【Demo】jQuery 图片放大镜效果——模仿淘宝图片放大效果
  20. Hive环境安装

热门文章

  1. Vue实际中的应用开发【分页效果与购物车】
  2. [LeetCode] 780. Reaching Points 到达指定点
  3. JavaScript对象分类
  4. DVWA SQL Injection(Blind) 通关教程
  5. jenkins+sonarqube进行代码质量检测
  6. 【C++】如何使用GCC生成动态库和静态库
  7. log4j打印抛出异常时堆栈内容
  8. Code Review最佳实践(转)
  9. 图解微信小程序---实现页面的跳转与返回操作
  10. Power BI连接Oracle的注意事项