def process(self, formdata=None, obj=None, data=None, **kwargs):
if not self.select_field or not getattr(self, self.select_field, False):
return
selected_value = kwargs.pop(self.select_field, None)
selected_args = kwargs
wrapped_formdata = self.meta.wrap_formdata(self, formdata)
if wrapped_formdata and isinstance(wrapped_formdata, ImmutableMultiDict):
selected_value = wrapped_formdata.get(self._prefix + self.select_field, '')
key_prefix = self._prefix + selected_value + '-'
selected_args = {k[len(key_prefix):]: v for k, v in wrapped_formdata.items() if key_prefix in k}
if selected_value:
kwargs = {self.select_field: selected_value,
selected_value: selected_args}
if not getattr(self, selected_value, False):
self._create_dynamic_destination_form(kwargs)
super(BaseDestinationForm, self).process(formdata, obj, data, **kwargs)
评论列表
文章目录