Loading django/forms/models.py +10 −2 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ and database field objects. from __future__ import unicode_literals from collections import OrderedDict import warnings from django.core.exceptions import ( ImproperlyConfigured, ValidationError, NON_FIELD_ERRORS, FieldError) Loading @@ -16,6 +17,7 @@ from django.forms.utils import ErrorList from django.forms.widgets import (SelectMultiple, HiddenInput, MultipleHiddenInput) from django.utils import six from django.utils.deprecation import RemovedInDjango19Warning from django.utils.encoding import smart_text, force_text from django.utils.text import get_text_list, capfirst from django.utils.translation import ugettext_lazy as _, ugettext Loading Loading @@ -1092,7 +1094,7 @@ class ModelChoiceField(ChoiceField): ' the available choices.'), } def __init__(self, queryset, empty_label="---------", cache_choices=False, def __init__(self, queryset, empty_label="---------", cache_choices=None, required=True, widget=None, label=None, initial=None, help_text='', to_field_name=None, limit_choices_to=None, *args, **kwargs): Loading @@ -1100,6 +1102,12 @@ class ModelChoiceField(ChoiceField): self.empty_label = None else: self.empty_label = empty_label if cache_choices is not None: warnings.warn("cache_choices has been deprecated and will be " "removed in Django 1.9.", RemovedInDjango19Warning, stacklevel=2) else: cache_choices = False self.cache_choices = cache_choices # Call Field instead of ChoiceField __init__() because we don't need Loading Loading @@ -1191,7 +1199,7 @@ class ModelMultipleChoiceField(ModelChoiceField): 'invalid_pk_value': _('"%(pk)s" is not a valid value for a primary key.') } def __init__(self, queryset, cache_choices=False, required=True, def __init__(self, queryset, cache_choices=None, required=True, widget=None, label=None, initial=None, help_text='', *args, **kwargs): super(ModelMultipleChoiceField, self).__init__(queryset, None, Loading docs/internals/deprecation.txt +3 −0 Original line number Diff line number Diff line Loading @@ -154,6 +154,9 @@ details on these changes. * Database test settings as independent entries in the database settings, prefixed by ``TEST_``, will no longer be supported. * The `cache_choices` option to :class:`~django.forms.ModelChoiceField` and :class:`~django.forms.MultipleModelChoiceField` will be removed. .. _deprecation-removed-in-1.8: 1.8 Loading docs/releases/1.8.txt +9 −0 Original line number Diff line number Diff line Loading @@ -479,3 +479,12 @@ arguments through ``argparse.add_argument()``. See The class :class:`~django.core.management.NoArgsCommand` is now deprecated and will be removed in Django 2.0. Use :class:`~django.core.management.BaseCommand` instead, which takes no arguments by default. ``cache_choices`` option of ``ModelChoiceField`` and ``MultipleModelChoiceField`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :class:`~django.forms.ModelChoiceField` and :class:`~django.forms.MultipleModelChoiceField` took an undocumented, untested option ``cache_choices``. This cached querysets between multiple renderings of the same ``Form`` object. This option is subject to an accelerated deprecation and will be removed in Django 1.9. Loading
django/forms/models.py +10 −2 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ and database field objects. from __future__ import unicode_literals from collections import OrderedDict import warnings from django.core.exceptions import ( ImproperlyConfigured, ValidationError, NON_FIELD_ERRORS, FieldError) Loading @@ -16,6 +17,7 @@ from django.forms.utils import ErrorList from django.forms.widgets import (SelectMultiple, HiddenInput, MultipleHiddenInput) from django.utils import six from django.utils.deprecation import RemovedInDjango19Warning from django.utils.encoding import smart_text, force_text from django.utils.text import get_text_list, capfirst from django.utils.translation import ugettext_lazy as _, ugettext Loading Loading @@ -1092,7 +1094,7 @@ class ModelChoiceField(ChoiceField): ' the available choices.'), } def __init__(self, queryset, empty_label="---------", cache_choices=False, def __init__(self, queryset, empty_label="---------", cache_choices=None, required=True, widget=None, label=None, initial=None, help_text='', to_field_name=None, limit_choices_to=None, *args, **kwargs): Loading @@ -1100,6 +1102,12 @@ class ModelChoiceField(ChoiceField): self.empty_label = None else: self.empty_label = empty_label if cache_choices is not None: warnings.warn("cache_choices has been deprecated and will be " "removed in Django 1.9.", RemovedInDjango19Warning, stacklevel=2) else: cache_choices = False self.cache_choices = cache_choices # Call Field instead of ChoiceField __init__() because we don't need Loading Loading @@ -1191,7 +1199,7 @@ class ModelMultipleChoiceField(ModelChoiceField): 'invalid_pk_value': _('"%(pk)s" is not a valid value for a primary key.') } def __init__(self, queryset, cache_choices=False, required=True, def __init__(self, queryset, cache_choices=None, required=True, widget=None, label=None, initial=None, help_text='', *args, **kwargs): super(ModelMultipleChoiceField, self).__init__(queryset, None, Loading
docs/internals/deprecation.txt +3 −0 Original line number Diff line number Diff line Loading @@ -154,6 +154,9 @@ details on these changes. * Database test settings as independent entries in the database settings, prefixed by ``TEST_``, will no longer be supported. * The `cache_choices` option to :class:`~django.forms.ModelChoiceField` and :class:`~django.forms.MultipleModelChoiceField` will be removed. .. _deprecation-removed-in-1.8: 1.8 Loading
docs/releases/1.8.txt +9 −0 Original line number Diff line number Diff line Loading @@ -479,3 +479,12 @@ arguments through ``argparse.add_argument()``. See The class :class:`~django.core.management.NoArgsCommand` is now deprecated and will be removed in Django 2.0. Use :class:`~django.core.management.BaseCommand` instead, which takes no arguments by default. ``cache_choices`` option of ``ModelChoiceField`` and ``MultipleModelChoiceField`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :class:`~django.forms.ModelChoiceField` and :class:`~django.forms.MultipleModelChoiceField` took an undocumented, untested option ``cache_choices``. This cached querysets between multiple renderings of the same ``Form`` object. This option is subject to an accelerated deprecation and will be removed in Django 1.9.