def __init__(self, fields=(), keys=(), require_all_fields=False, max_value_length=25, *args, **kwargs):
if (fields and keys) or (not fields and not keys):
raise ValueError("NestedFormField requires either a tuple of fields or keys but not both")
if keys:
fields = []
for key in keys:
field = CharField(max_length=max_value_length, required=False)
fields.append((key, field))
form_fields = []
widgets = []
self.labels = []
self.names = {}
for field in fields:
label = field[1].label or field[0]
self.names[label] = field[0]
self.labels.append(label)
form_fields.append(field[1])
widgets.append(field[1].widget)
widget = NestedFormWidget(self.labels, widgets, self.names)
super(NestedFormField, self).__init__(*args, fields=form_fields, widget=widget,
require_all_fields=require_all_fields, **kwargs)
评论列表
文章目录