def get_submission_formsets_initial(instance):
formset_initializers = [
('measure', lambda sf: sf.measures.filter(category='6.1')),
('routinemeasure', lambda sf: sf.measures.filter(category='6.2')),
('nontesteduseddrug', lambda sf: sf.nontesteduseddrug_set.all()),
('participatingcenternonsubject', lambda sf: sf.participatingcenternonsubject_set.all()),
('foreignparticipatingcenter', lambda sf: sf.foreignparticipatingcenter_set.all()),
('investigator', lambda sf: sf.investigators.all()),
]
formsets = {}
for name, initial in formset_initializers:
formsets[name] = [
model_to_dict(obj, exclude=('id',))
for obj in initial(instance).order_by('id')
]
initial = []
if instance:
for index, investigator in enumerate(instance.investigators.order_by('id')):
for employee in investigator.employees.order_by('id'):
employee_dict = model_to_dict(employee, exclude=('id', 'investigator'))
employee_dict['investigator_index'] = index
initial.append(employee_dict)
formsets['investigatoremployee'] = initial
return formsets
评论列表
文章目录