﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
25980	Disabled ModelMultipleChoiceField can't handle querysets as an initial value	karyon	nobody	"So i provided a queryset as initial value for a non-required and disabled ModelMultipleChoiceField. it seemed to work as i saw the correct values in the rendered output.

but, when saving the form i got an error  {{{ Enter a list of values.}}}

1. this happens because disabled fields send their initial value to cleaning, see [[https://github.com/django/django/blob/d91cc25a2a43cb2526943dc2285ffe59e38fabfd/django/forms/forms.py#L372 here]. in case of model fields, it looks like this must be a list of PKs, which is quite unhandy to build (something like {{{list(queryset.values_list('pk', flat=True))}}})
2. the error did not show up when the queryset i provided yielded no results, which is inconsistent. the reason for that is that [https://github.com/django/django/blob/d91cc25a2a43cb2526943dc2285ffe59e38fabfd/django/forms/models.py#L1250 this boolean expression] evaluates to true as soon as there are results in the queryset.

3. something else appeared fishy to me: in one line the clean method returns a queryset ({{{self.queryset.none()}}}), but in the next line it raises an error if the value is neither a list nor a tuple.

if you folks tell me what the intended behaviour is / which types should be used, i can try to create a fix if you want.

4. and the last (slightly unrelated) issue: since the field was disabled, i was wondering why cleaning it doesn't take a shortcut and does nothing at all... bumped into this a few times."	Bug	new	Forms	1.9	Normal			johannes.linke@…	Accepted	0	0	0	0	0	0
