#26970: Disabled ModelMultipleChoiceField does not validate anymore
-------------------------------+--------------------------------------
Reporter: karyon | Owner: nobody
Type: Uncategorized | Status: new
Component: Uncategorized | Version: 1.10
Severity: Normal | Resolution:
Keywords: | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------+--------------------------------------
Comment (by karyon):
here are two tests:
{{{
def test_disabled_model_multiple_choice_field(self):
class WriterForm(forms.Form):
persons =
forms.ModelMultipleChoiceField(queryset=Writer.objects.all())
person1 = Writer.objects.create(name="Person 1")
form = WriterForm(data={'persons': [person1.pk]})
self.assertTrue(form.is_valid())
form = WriterForm(data={'persons': [person1.pk]})
form.fields['persons'].disabled = True
self.assertTrue(form.is_valid())
def test_disabled_model_multiple_choice_field2(self):
class ArticleCategoriesForm(forms.ModelForm):
categories =
forms.ModelMultipleChoiceField(Category.objects.all(), required=False)
class Meta:
model = Article
fields = ['categories']
category1 = Category.objects.create(name="uiae")
article1 = Article.objects.create(
pub_date=datetime.date(1988, 1, 4),
writer=Writer.objects.create(name='Test writer'),
# categories= [category1.pk], # throws a warning
)
article1.categories.set([category1.pk]) # without this, the test
passes
# article1.categories = [category1.pk] # throws a warning
# instance must be set, otherwise test passes
form = ArticleCategoriesForm(data={'categories': [category1.pk]},
instance=article1)
self.assertTrue(form.is_valid())
form = ArticleCategoriesForm(data={'categories': [category1.pk]},
instance=article1)
form.fields['categories'].disabled = True
self.assertTrue(form.is_valid())
}}}
both fail at the second assert, the first one with "this field is
required" (setting it to required=False or disabled=False makes the test
pass), the second one with "please enter a list of values", like the
original report.
i'm not sure what the protocol is, should i put the code somewhere else?
unrelated: note the warnings when assigning article.categories. the
warning was "Direct assignment to the reverse side of a related set is
deprecated due to the implicit save() that happens. Use article_set.set()
instead." although i was not assigning to the reverse side. should i file
a separate bug?
--
Ticket URL: <https://code.djangoproject.com/ticket/26970#comment:7>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/064.8fca599616229026902d5623fc7d9daf%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.