mirror of
				https://github.com/django/django.git
				synced 2025-10-28 08:06:09 +00:00 
			
		
		
		
	Fixed #18751 -- Cleaned up BaseFormSet._should_delete_form
We can do that now that cleaned_data is guaranteed to be
present. Related to [121fd109].
Thanks Simon Charette for his work on the ticket.
			
			
This commit is contained in:
		| @@ -254,13 +254,10 @@ class BaseFormSet(object): | ||||
|     errors = property(_get_errors) | ||||
|  | ||||
|     def _should_delete_form(self, form): | ||||
|         # The way we lookup the value of the deletion field here takes | ||||
|         # more code than we'd like, but the form's cleaned_data will | ||||
|         # not exist if the form is invalid. | ||||
|         field = form.fields[DELETION_FIELD_NAME] | ||||
|         raw_value = form._raw_value(DELETION_FIELD_NAME) | ||||
|         should_delete = field.clean(raw_value) | ||||
|         return should_delete | ||||
|         """ | ||||
|         Returns whether or not the form was marked for deletion. | ||||
|         """ | ||||
|         return form.cleaned_data.get(DELETION_FIELD_NAME, False) | ||||
|  | ||||
|     def is_valid(self): | ||||
|         """ | ||||
|   | ||||
| @@ -591,6 +591,10 @@ class BaseModelFormSet(BaseFormSet): | ||||
|             return [] | ||||
|  | ||||
|         saved_instances = [] | ||||
|         try: | ||||
|             forms_to_delete = self.deleted_forms | ||||
|         except AttributeError: | ||||
|             forms_to_delete = [] | ||||
|         for form in self.initial_forms: | ||||
|             pk_name = self._pk_field.name | ||||
|             raw_pk_value = form._raw_value(pk_name) | ||||
| @@ -601,7 +605,7 @@ class BaseModelFormSet(BaseFormSet): | ||||
|             pk_value = getattr(pk_value, 'pk', pk_value) | ||||
|  | ||||
|             obj = self._existing_object(pk_value) | ||||
|             if self.can_delete and self._should_delete_form(form): | ||||
|             if form in forms_to_delete: | ||||
|                 self.deleted_objects.append(obj) | ||||
|                 obj.delete() | ||||
|                 continue | ||||
|   | ||||
		Reference in New Issue
	
	Block a user