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 }}