mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	[1.10.x] Fixed #26970 -- Fixed crash with disabled ModelMultipleChoiceField.
Backport of 4e86168290 from master
			
			
This commit is contained in:
		| @@ -1514,6 +1514,31 @@ class ModelChoiceFieldTests(TestCase): | ||||
|             ['Select a valid choice. That choice is not one of the available choices.'] | ||||
|         ) | ||||
|  | ||||
|     def test_disabled_multiplemodelchoicefield(self): | ||||
|         class ArticleForm(forms.ModelForm): | ||||
|             categories = forms.ModelMultipleChoiceField(Category.objects.all(), required=False) | ||||
|  | ||||
|             class Meta: | ||||
|                 model = Article | ||||
|                 fields = ['categories'] | ||||
|  | ||||
|         category1 = Category.objects.create(name='cat1') | ||||
|         category2 = Category.objects.create(name='cat2') | ||||
|         article = Article.objects.create( | ||||
|             pub_date=datetime.date(1988, 1, 4), | ||||
|             writer=Writer.objects.create(name='Test writer'), | ||||
|         ) | ||||
|         article.categories.set([category1.pk]) | ||||
|  | ||||
|         form = ArticleForm(data={'categories': [category2.pk]}, instance=article) | ||||
|         self.assertEqual(form.errors, {}) | ||||
|         self.assertEqual([x.pk for x in form.cleaned_data['categories']], [category2.pk]) | ||||
|         # Disabled fields use the value from `instance` rather than `data`. | ||||
|         form = ArticleForm(data={'categories': [category2.pk]}, instance=article) | ||||
|         form.fields['categories'].disabled = True | ||||
|         self.assertEqual(form.errors, {}) | ||||
|         self.assertEqual([x.pk for x in form.cleaned_data['categories']], [category1.pk]) | ||||
|  | ||||
|  | ||||
| class ModelMultipleChoiceFieldTests(TestCase): | ||||
|     def setUp(self): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user