formset的简单使用
2024-10-21 13:29:40
1.modelform
class StudentStudyRecordModelForm(forms.ModelForm): class Meta:
model = StudentStudyRecord
fields = ["score","homework_note"] def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
for field in self.fields.values():
field.widget.attrs.update({"class":"form-control"})
2.view
from django.forms.models import modelformset_factory
class EditStudentStudyRecordView(View): def get(self,request,edit_id):
model_formset_cls = modelformset_factory(model=StudentStudyRecord,form=StudentStudyRecordModelForm,extra=0)
queryset = StudentStudyRecord.objects.filter(classstudyrecord_id=edit_id)
formset = model_formset_cls(queryset=queryset) class_study_record = ClassStudyRecord.objects.filter(pk=edit_id).first()
title = class_study_record return render(request,"edit_studentstudyrecord.html",{"formset":formset,"title":title}) def post(self,request,edit_id):
model_formset_cls = modelformset_factory(model=StudentStudyRecord, form=StudentStudyRecordModelForm, extra=0) formset = model_formset_cls(request.POST)
if formset.is_valid():
formset.save() return redirect(request.path)
3.html
<form method="post" action="">
{% csrf_token %}
{{ formset.management_form }}#必须有,否则发送post请求时会报错 <table class="table table-bordered">
<thead>
<tr>
<th>姓名</th>
<th>考勤</th>
<th>作业成绩</th>
<th>作业评语</th>
</tr>
</thead>
<tbody>
{% for form in formset %}
<tr>
{{ form.id }}
<td>{{ form.instance.student }}</td>
<td>{{ form.instance.get_record_display }} </td>
<td>{{ form.score }} </td>
<td>{{ form.homework_note }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<input type="submit" value="保存">
</form>
最新文章
- Unity使用protobuf-net进行二进制序列化与反序列化
- c# 多线程与异步调用
- php odbc连接 查询显示不完整问题
- java 判断两个数是否异号
- 杭电ACM2057--A + B Again
- JS事件(事件冒泡和事件捕获)
- Linux用户空间与内核空间
- shell 数组
- (转)你知道Android也有安全模式吗?(地球人都知道了吧)
- Oracle EBS-SQL (QA-2):检查接收未检验.SQL
- img 鼠标滑上后图片放大,滑下后图片复原
- git全部使用步骤
- vue2.0父子组件以及非父子组件如何通信
- Oracle 12c: RMAN restore/recover pluggable database
- Log4J基础详解及示例大全(转)
- mysql二进制日志详解
- ansible 角色登陆
- 【hihocoder编程练习赛9】闰秒
- ASP站点无法访问怎么办
- ardunio
热门文章
- c# Aspose.Cells 通过Excel模板生产excel数据再打印
- 二、Spring中的@ComponentScan自动扫描组件
- 史上最详细bitbucket入门手册,手把手操作指南
- Linux03 文件的相关操作(touch、rm、mv、cat)
- PHP提取中英文首字母的方法(首字母索引)
- argv和raw_input的区别
- Aix6.1下su命令不能切换环境变量的问题
- yield再理解--绝对够透彻
- golang---获取windows系统相关信息
- 在jenkins中使用shell命令推送当前主机上的docker镜像到远程的Harbor私有仓库