mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	Fixed #36251 -- Avoided mutating form Meta.fields in BaseInlineFormSet.
Signed-off-by: SaJH <wogur981208@gmail.com>
This commit is contained in:
		| @@ -1137,8 +1137,7 @@ class BaseInlineFormSet(BaseModelFormSet): | ||||
|         # Add the inline foreign key field to form._meta.fields if it's defined | ||||
|         # to make sure validation isn't skipped on that field. | ||||
|         if self.form._meta.fields and self.fk.name not in self.form._meta.fields: | ||||
|             if isinstance(self.form._meta.fields, tuple): | ||||
|                 self.form._meta.fields = list(self.form._meta.fields) | ||||
|             self.form._meta.fields = list(self.form._meta.fields) | ||||
|             self.form._meta.fields.append(self.fk.name) | ||||
|  | ||||
|     def initial_form_count(self): | ||||
|   | ||||
| @@ -1687,9 +1687,10 @@ class ModelFormsetTest(TestCase): | ||||
|  | ||||
|             class Meta: | ||||
|                 model = Book | ||||
|                 fields = ("title",) | ||||
|                 fields = ["title"] | ||||
|  | ||||
|         BookFormSet = inlineformset_factory(Author, Book, form=BookForm) | ||||
|         self.assertEqual(BookForm.Meta.fields, ["title"]) | ||||
|         data = { | ||||
|             "book_set-TOTAL_FORMS": "3", | ||||
|             "book_set-INITIAL_FORMS": "0", | ||||
| @@ -1700,6 +1701,7 @@ class ModelFormsetTest(TestCase): | ||||
|         } | ||||
|         author = Author.objects.create(name="test") | ||||
|         formset = BookFormSet(data, instance=author) | ||||
|         self.assertEqual(BookForm.Meta.fields, ["title"]) | ||||
|         self.assertEqual( | ||||
|             formset.errors, | ||||
|             [{}, {"__all__": ["Please correct the duplicate values below."]}, {}], | ||||
|   | ||||
		Reference in New Issue
	
	Block a user