Django之CRM项目Day6-公私户转换问题解决 班主任功能
2024-09-26 07:17:56
1.解决公户转私户的问题
数据库中加锁:
begin; 开始事务
select * from user where id=1 for update; 加锁
commit; 结束事务
django中加锁:
with transaction.atomic():
# 查询出数据加锁
queryset = models.Customer.objects.filter(id__in=ids, consultant__isnull=True).select_for_update() # 加锁
if len(ids) == queryset.count():
queryset.update(consultant=self.request.account)
return
return HttpResponse('你的手速太慢了,已经被别人抢走了')
设置数量的上限
2.班主任的功能:
-班级的管理
form的__all__
在前端的显示 {{ form_obj.non_field_errors.0 }}
-课程记录的管理
-学习记录的管理
# 批量创建
list1 = []
for student in all_students:
list1.append(models.StudyRecord(course_record=course_record_obj, student=student))
models.StudyRecord.objects.bulk_create(list1)
modelformset
# 生成FormSet的类
FormSet = modelformset_factory(models.StudyRecord, StudyRecordForm, extra=0)
# 查询的数据
all_study_record = models.StudyRecord.objects.filter(course_record_id=course_record_id)
# modelformset对象
form_obj = FormSet(queryset=all_study_record)
form_obj = FormSet(request.POST, queryset=all_study_record)
form_obj.is_valid()
form_obj.save()
# 错误提示
form_obj.errors
{{ form.instance }} ——》 每一个数据 对应的对象
{{ form.instance.student }} —— 》 值
{{ form.attendance }} —— 》 input框 select框
注意:
{{ form_obj.management_form }}
每一行要有 {{ form.id }}
最新文章
- formValidator 表单验证
- 【转】给npm设置代理
- django cycle标签
- 企业网站DDOS防护解决方案
- c语言编程之二叉树
- python 解析 xml
- kafka教程
- iOS开发多线程-线程间通讯
- 监测谁用了SQL Server的Tempdb空间
- Android -- 贝塞尔曲线公式的推导
- webapi 异步返回
- POJ-3295 Tautology---栈+表达式求值
- app如何更换用户头像信息呢?不妨这样做
- zabbix3.2监控rabbitmq集群
- HibernateValidators
- Oracle 10053
- linux_修改ip(重启后永久生效)
- PHP生成缩略图(1)--简单缩略图
- IOS UITableView删除功能
- nginx 反向代理 配置 https 实现http https同时存在 经测试 支持location 规则
热门文章
- python 当前时间获取方法
- 斯坦福大学公开课机器学习:machine learning system design | data for machine learning(数据量很大时,学习算法表现比较好的原理)
- memset()函数及其作用(转)
- 苹果电脑利用wget总是会出现无法建立 SSL 连接的问题
- 计算机基础:计算机网络-chapter5 运输层
- ZOJ 1532 Internship (Dinic)
- mysql 变量定义 sql查询
- (set)产生冠军 hdu2094
- 把菜单栏变成万能工具箱,让你的 Mac 更酷炫
- CentOS 6.x 最小化安装推荐安装的依赖包和修改内核参数