summaryrefslogtreecommitdiff
path: root/tests/model_forms/test_modelchoicefield.py
AgeCommit message (Collapse)Author
2019-10-11[3.0.x] Fixed #30014 -- Fixed ModelChoiceField validation when initial value ↵Etienne Chové
is a model instance. Thanks Carlton Gibson for reviews. Backport of e7cdb0cd7eb5eb677af8dae7bfc6845186f861b0 from master
2019-10-11[3.0.x] Added ModelChoiceField test for validation with to_field_name.Etienne Chové
Backport of a12f9cd95a24573612daaf844ec97d4aed12446d from master
2018-04-23Refs #28312 -- Added an optimized __bool__() to ModelChoiceIterator.François Freitag
COUNT is more expensive than EXISTS; use the latter when possible.
2018-04-23Fixed #28312 -- Made ModelChoiceIterator.__len__() more memory-efficient.François Freitag
Instead of loading all QuerySet results in memory, count the number of entries. This adds an extra query when list() or tuple() is called on the choices (because both call __len__() then __iter__()) but uses less memory since the QuerySet results won't be cached. In most cases, the choices will only be iterated on, meaning that __len__() won't be called and only one query will be executed.
2018-03-01Fixed #29159 -- Made ModelChoiceIterator reuse QuerySet result cache.François Freitag
When __len__() is called (e.g. when casting to list or tuple), the QuerySet is evaluated and the result cache populated. iterator() shouldn't be called on the QuerySet after that, as it would reset the result cache and trigger a second query.
2018-03-01Fixed #29158 -- Fixed len(choices) crash if ModelChoiceField's queryset is a ↵François Freitag
manager. Removing all() in __iter__() prevents a duplicate query when choices are cast to a list and there's a prefetch_related().
2018-03-01Consolidated ModelChoiceField tests.François Freitag