formset_factory 具有不同初始数据的表单
Posted
技术标签:
【中文标题】formset_factory 具有不同初始数据的表单【英文标题】:formset_factory with forms with different initial data 【发布时间】:2014-04-11 01:16:14 【问题描述】:我正在编写一个视图,它使用 POST 数据来显示具有不同预填充 FK 的多个表单
我在 forms.py 中有一个 ModelForm
class SurveyForm(forms.ModelForm):
class Meta:
model = Survey
谁的模特长这样……
class Survey(models.Model):
student = models.ForeignKey(Student)
surveyset = models.ForeignKey(SurveySet)
cei_0 = models.BooleanField()
cei_1 = models.BooleanField()
到目前为止,我的观点看起来有点像这样
# ... after building a list from POST we essentially have:
list_of_studentids = [1,3,2,6,7,45]
students = []
for i in list_of_student_ids:
students.append(Student.objects.filter(id=i))
SurveyFormSet = formset_factory(SurveyForm, extra=6)
formset = SurveyFormSet(initial=[
'surveyset': SurveySet.create(),
'student': ?????,
])
如何返回一堆具有不同学生 FK 和相同调查集 FK 的表格?
【问题讨论】:
【参考方案1】:您需要将instance 属性传递给表单:
prefilled_survey = Survey(student=student_instance, surveyset=surveyset_instance)
form = SurveyForm(request.POST or None, instance=prefilled_survey)
【讨论】:
我需要具有不同实例的多个表单。以上是关于formset_factory 具有不同初始数据的表单的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Django 中根据需要为 formset_factory 设置每个字段(如何验证表单集中的空白表单)
如何使用具有不同对象的“重复:计数:”初始化数组? [复制]
在初始化期间创建具有不同时区的新 JavaScript 日期对象 [重复]
iPhone - 两个不同的自定义单元格,具有不同的设计,在同一个 UITableViewController - 单元格保持初始大小