django crm2
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 生成一个方法,让这个方法被调用,返回值就是这个方法的结果
django crm2的更多相关文章
- 巨蟒django之CRM2 展示客户列表&&分页
1.展示客户列表 点击画红线中的views,进入下列界面 路径的查找顺序:应该是先查找外层的templates里边的html,然后查找app里边的templates 另一个会按照app的顺序进行寻找, ...
- 异步任务队列Celery在Django中的使用
前段时间在Django Web平台开发中,碰到一些请求执行的任务时间较长(几分钟),为了加快用户的响应时间,因此决定采用异步任务的方式在后台执行这些任务.在同事的指引下接触了Celery这个异步任务队 ...
- 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...
- django server之间通过remote user 相互调用
首先,场景是这样的:存在两个django web应用,并且两个应用存在一定的联系.某些情况下彼此需要获取对方的数据. 但是我们的应用肯经都会有对应的鉴权机制.不会让人家随随便便就访问的对吧.好比上车要 ...
- Mysql事务探索及其在Django中的实践(二)
继上一篇<Mysql事务探索及其在Django中的实践(一)>交代完问题的背景和Mysql事务基础后,这一篇主要想介绍一下事务在Django中的使用以及实际应用给我们带来的效率提升. 首先 ...
- Mysql事务探索及其在Django中的实践(一)
前言 很早就有想开始写博客的想法,一方面是对自己近期所学知识的一些总结.沉淀,方便以后对过去的知识进行梳理.追溯,一方面也希望能通过博客来认识更多相同技术圈的朋友.所幸近期通过了博客园的申请,那么今天 ...
- 《Django By Example》第三章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第三章滚烫出炉,大家请不要吐槽文中 ...
- 《Django By Example》第二章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:翻译完第一章后,发现翻译第二章的速 ...
- 《Django By Example》第一章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:本人目前在杭州某家互联网公司工作, ...
随机推荐
- 10.24考试题解qwq
考点难度都很合适的一套题目,大概在day1到day2之前 T1 猴猴最喜欢在树上玩耍,一天猴猴又跳上了一棵树,这棵树有N个苹果,每个苹果有一个编号,分别为0~N-1,它们之间由N-1个树枝相连,猴猴可 ...
- [比赛题解]CWOI2019-1
[比赛题解]CWOI2019-1 比赛日期:2019.10.12 T1 一道神仙DP题. 我们考虑\(dp[i][j][k]\)表示最后\(i\)位数,\(i-1\)位都是9,最后一位为\(j\),最 ...
- Idea必知必会
声明:此文章根据后续用的越来越多,将会不断补充,之所以以链接的形式,是因为不想在这种使用层面上重复造轮子,写很多重复文章,后续我打算写一些更深入的文章. idea常用操作: idea如何Debug调试 ...
- CentOS7 Hive 安装
hive的安装模式有2种,一种是使用自带的derby数据库,另一种是使用mysql作为元数据库.derby方式一般没人用,因为它是单用户模式.这里主要讲解mysql方式. hive仅仅是一个客户端工具 ...
- Ext.net SelectionModel RowSelection
<SelectionModel> <ext:RowSelectionModel ID="RowSelectionModel1308" runat="se ...
- 机器学习之TensorFlow介绍
TensorFlow的概念很简单:使用python定义一个计算图,然后TensorFlow根据计算图生成高性能的c++代码. 如上图所示,使用图的方式实现了函数\(f(x,y)=x^2y+y+2\)的 ...
- MySQL数据库 : 高级查询
根据某个字段删除重复的数据, 只保留一条: 比如uuid字段有重复的, 需要只保留一条数据, 让uuid字段不能重复, 则首先 group by uuid 查出所有数据的id最小的那条数据,作为dt表 ...
- 【51nod1355】斐波那契的最小公倍数(min-max容斥)
[51nod1355]斐波那契的最小公倍数(min-max容斥) 题面 51nod 题解 显然直接算还是没法算的,所以继续考虑\(min-max\)容斥计算. \[lcm(S)=\prod_{T\su ...
- tkmybatis VS mybatisplus
本文是简单对比了以下官网上的内容 文章目录 TkMybatis Vs MybatisPlus 1.基础CRUD BaseMapper 2.代码生成器 3. 全局主键 Sequence主键 4. 热加载 ...
- .Net工具类--表达式目录树解析DataReader和DataTable
一.概述 在项目中经常会使用SQL去操作数据库,在读取数据的时候返回结果一般是DataReader和DataSet,其中DataaSet里面可以包含多个DataTable. 读取到数据之后,一般情况下 ...