Opened 4 years ago

Last modified 4 years ago

#25980 new Bug

Inconsistent error behaviour when providing a queryset as initial value on ModelMultipleChoiceField — at Version 2

Reported by: karyon Owned by: nobody
Component: Forms Version: 1.9
Severity: Normal Keywords:
Cc: johannes.linke@… Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by karyon)

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. the error did not show up when the queryset i provided yielded no results, which is inconsistent. the reason for that is that this boolean expression evaluates to true as soon as there are results in the queryset.

edit: just found out this can only happen for disabled fields, because there the initial value is cleaned, and not some value taken from the widget, see here

  1. something else appeared fishy to me: in one line this 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.

  1. 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.

Change History (2)

comment:1 Changed 4 years ago by karyon

Cc: johannes.linke@… added

comment:2 Changed 4 years ago by karyon

Description: modified (diff)
Note: See TracTickets for help on using tickets.
Back to Top