Formset(表单集)是多个表单的集合。Formset在Web开发中应用很普遍,它可以让用户在同一个页面上提交多张表单,一键添加多个数据
class StudentStudyRecordModel(forms.ModelForm):
class Meta:
model=StudentStudyRecord
fields=['score','homework_note']
view视图
from django.forms.models import modelformset_factory

class Student_study_record(View):
def get(self,request):
model_formset_cls=modelformset_factory(model=StudentStudyRecord,form=StudentStudyRecordModel,extra=0)
queryset=StudentStudyRecord.objects.filter(classstudyrecord__id=request.GET.get('pk')) #批量操作的queryset
formset=model_formset_cls(queryset=queryset)
return render(request, 'students/Student_study_record.html', locals()) def post(self,request):
model_formset_cls = modelformset_factory(model=StudentStudyRecord, form=StudentStudyRecordModel, extra=0)
formset=model_formset_cls(request.POST)  #与modelform校验基本一致,就是不用穿instance了
if formset.is_valid():
formset.save()
return redirect('/class_study_record/')
else:
print('formset.errors##################',formset.errors)
return self.get(request)

templates模版

            <form action="" method="post" novalidate>

                <table class="table table-hover table-striped" style="margin-top: 20px">
<thead>
<tr>
<td>编号</td>
<td>姓名</td>
<td>考勤</td>
<td>成绩</td>
<td>批语</td>
</tr>
</thead>
<tbody>
{# 必须有,不然会报错#}
{{ formset.management_form }}
{% for form in formset %}
<tr>
<td>{{ form.id }}</td>           # 必须有form.id
<td>{{ form.instance.student }}</td> #instance是显示具体的某个对象的值,而不是多选框(不能修改)
<td>{{ form.instance.get_record_display }}</td>  
<td>{{ form.score }}</td>
<td>{{ form.homework_note }}</td>
{% csrf_token %}
</tr>
{% endfor %}
</tbody>
</table>
<button class=" btn btn-success btn-sm pull-right" style="margin: 30px;">提交</button>
</form>
												

formset批量处理form表单数据的更多相关文章

  1. 解析form表单数据

    //解析form表单数据 function parseFormData(params) { var args = new Object(); for(var key in params){ if(!p ...

  2. easyui不提交window中的form表单数据

    <form id="ff" method="post">, <div id="win" class="easyu ...

  3. Django框架获取各种form表单数据

    Django中获取text,password 名字:<input type="text" name="name"><br><br& ...

  4. Django 用ModelForm批量保存form表单(非常实用的方法) mfor_verity项目

    1.先看一下 Model 非常多 from django.db import models from users.models import UserProfile # Create your mod ...

  5. 3..jquery的ajax获取form表单数据

    jq是对dom进行的再次封装.是一个js库,极大简化了js使用 jquery库在js文件中,包含了所有jquery函数,引用:<script src="jquery-1.11.1.mi ...

  6. html基础:jquery的ajax获取form表单数据

    jq是对dom进行的再次封装.是一个js库,极大简化了js使用 jquery库在js文件中,包含了所有jquery函数,引用:<script src="jquery-1.11.1.mi ...

  7. element-ui中关闭对话框清空验证,清除form表单数据

    对于elementUI中对话框,点击对话框和关闭按钮 怎么清空验证,清空form表单,避免二次点击还会有 验证错误的提示.今天终于自己查资料解决了,分享给大家 1.首先在你的对话框 取消按钮 加一个c ...

  8. Select下拉列表选择自动提交form表单数据

    HTML代码: <form action='__CONTROLLER__/index' method="get" id="myform"> < ...

  9. Form表单数据

    官方文档地址:https://fastapi.tiangolo.com/zh/tutorial/request-forms/ 接收的不是 JSON,而是表单字段时,要使用 Form 要使用表单,需预先 ...

随机推荐

  1. PHP 获取图像信息 getimagesize函数

    getimagesize() 函数用于获取图像大小及相关信息,成功返回一个数组,失败则返回 FALSE 并产生一条 E_WARNING 级的错误信息. 语法:array  getimagesize(s ...

  2. Maven-使用及常见问题

    一.Maven是什么? 管理jar包用的,以前jar包是自己下载,然后放在lib下,然后add build Path,Maven环境下,只需要添加坐标(实际是xml片段)便会根据坐标自行下载. 二.M ...

  3. Extjs 下拉框

    刚刚熟练了easyui控件的使用,又開始了如今的这个项目. 这个项目是个半成品.前端使用的是Extjs控件,jsp中没有代码.就引用了非常多的js...于是乎有种不知所措了呀. . . 说实话特别的不 ...

  4. SharePoint 2013 网站迁移流程

    在新的Farm(场)里,创建一个新的Web Application(网站应用程序),不需要创建Site Collection(网站集) Copy(复制)自定义开发的WSP包到新的Farm Server ...

  5. MVC Razor与javascript混编(js中嵌入razor)

    其中的关键是输出js上的纯文本内容,让浏览器解析为其中的js代码 <script>    BUI.use('common/main',function(){        var conf ...

  6. angularJs 页面{{xxx}}使用三目运算符

    <td>{{::item.sex=='w'?'女':'男'}}</td>,记得引号.也可以不用::,用不用::的区别,自行百度

  7. ADO 调用Execute失败,异常码DB_E_DATAOVERFLOW

    今天,通过ADO接口往PG数据库中插入数据,结果数据始终不能插入到数据库的表中,执行insert语句后,返回失败,错误码DB_E_DATAOVERFLOW. DB_E_DATAOVERFLOW:命令中 ...

  8. [spring] 对实体 "characterEncoding" 的引用必须以 ';' 分隔符结尾

    org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 26 in XML document from ...

  9. 使用python调用zxing库生成二维码图片

    (1)     安装Jpype 用python调用jar包须要安装jpype扩展,在Ubuntu上能够直接使用apt-get安装jpype扩展 $ sudo apt-get install pytho ...

  10. HTML&CSS精选笔记_HTML与CSS网页设计概述

    HTML与CSS网页设计概述 Web基本概念 认识网页 网页主要由文字.图像和超链接等元素构成.当然,除了这些元素,网页中还可以包含音频.视频以及Flash等. 名词解释 Internet网络 就是通 ...