-
Notifications
You must be signed in to change notification settings - Fork 33
Open
Labels
Description
Update save to get another method that could be override
def save_instance(self, instance, **data):
record = instance(**data)
record.save(force_update=False)
return record
def save(self, instance=None):
"""
Save all contents
"""
if not instance:
instance = self.Meta.model
if not instance:
raise AttributeError('Invalid instance model')
if self.Meta.transaction:
with transaction.atomic():
for row, data in self.cleaned_data:
_ = self.save_instance(instance=instance, **data)
try:
self.pre_commit()
except Exception as e:
self._error.append(self.get_error_message(e, error_type='__pre_commit__'))
transaction.rollback()
try:
transaction.commit()
except Exception as e:
self._error.append(self.get_error_message(e, error_type='__trasaction__'))
transaction.rollback()
else:
for row, data in self.cleaned_data:
_ = self.save_instance(instance=instance, **data)
self.post_save_all_lines()
return True