Fix up unified job creation parameter passing

This commit is contained in:
Matthew Jones
2014-11-26 11:54:49 -05:00
parent f8c6aa6fca
commit e1f25a0949

View File

@@ -293,16 +293,19 @@ class UnifiedJobTemplate(PolymorphicModel, CommonModelNameNotUnique):
unified_job_class = self._get_unified_job_class() unified_job_class = self._get_unified_job_class()
parent_field_name = unified_job_class._get_parent_field_name() parent_field_name = unified_job_class._get_parent_field_name()
kwargs.pop('%s_id' % parent_field_name, None) kwargs.pop('%s_id' % parent_field_name, None)
kwargs[parent_field_name] = self create_kwargs = {}
create_kwargs[parent_field_name] = self
for field_name in self._get_unified_job_field_names(): for field_name in self._get_unified_job_field_names():
if field_name in kwargs: if field_name in kwargs:
create_kwargs[field_name] = kwargs[field_name]
continue continue
# Foreign keys can be specified as field_name or field_name_id. # Foreign keys can be specified as field_name or field_name_id.
if hasattr(self, '%s_id' % field_name) and ('%s_id' % field_name) in kwargs: if hasattr(self, '%s_id' % field_name) and ('%s_id' % field_name) in kwargs:
create_kwargs['%s_id' % field_name] = kwargs['%s_id' % field_name] = kwargs[field_name]
continue continue
kwargs[field_name] = getattr(self, field_name) create_kwargs[field_name] = getattr(self, field_name)
kwargs = self._update_unified_job_kwargs(**kwargs) kwargs = self._update_unified_job_kwargs(**create_kwargs)
unified_job = unified_job_class(**kwargs) unified_job = unified_job_class(**create_kwargs)
if save_unified_job: if save_unified_job:
unified_job.save() unified_job.save()
return unified_job return unified_job