Commit deed00c0 authored by Gabriel Muñumel's avatar Gabriel Muñumel Committed by Tim Graham
Browse files

Fixed #23162 -- Renamed forms.Field._has_changed() to has_changed().

parent 99561eef
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@ class ReadOnlyPasswordHashField(forms.Field):
        # render an input field.
        return initial

    def _has_changed(self, initial, data):
    def has_changed(self, initial, data):
        return False


+1 −1
Original line number Diff line number Diff line
@@ -533,4 +533,4 @@ class ReadOnlyPasswordHashTest(TestCase):

    def test_readonly_field_has_changed(self):
        field = ReadOnlyPasswordHashField()
        self.assertFalse(field._has_changed('aaa', 'bbb'))
        self.assertFalse(field.has_changed('aaa', 'bbb'))
+1 −1
Original line number Diff line number Diff line
@@ -81,7 +81,7 @@ class GeometryField(forms.Field):

        return geom

    def _has_changed(self, initial, data):
    def has_changed(self, initial, data):
        """ Compare geographic value of data with its initial value. """

        try:
+1 −1
Original line number Diff line number Diff line
@@ -44,7 +44,7 @@ class GeoAdminTest(TestCase):
        """
        geoadmin = admin.site._registry[City]
        form = geoadmin.get_changelist_form(None)()
        has_changed = form.fields['point']._has_changed
        has_changed = form.fields['point'].has_changed

        initial = Point(13.4197458572965953, 52.5194108501149799, srid=4326)
        data_same = "SRID=3857;POINT(1493879.2754093995 6894592.019687599)"
+15 −9
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ from django.forms.widgets import (
from django.utils import formats
from django.utils.encoding import smart_text, force_str, force_text
from django.utils.ipv6 import clean_ipv6_address
from django.utils.deprecation import RemovedInDjango19Warning, RemovedInDjango20Warning
from django.utils.deprecation import RemovedInDjango19Warning, RemovedInDjango20Warning, RenameMethodsBase
from django.utils import six
from django.utils.six.moves.urllib.parse import urlsplit, urlunsplit
from django.utils.translation import ugettext_lazy as _, ungettext_lazy
@@ -45,7 +45,13 @@ __all__ = (
)


class Field(object):
class RenameFieldMethods(RenameMethodsBase):
    renamed_methods = (
        ('_has_changed', 'has_changed', RemovedInDjango20Warning),
    )


class Field(six.with_metaclass(RenameFieldMethods, object)):
    widget = TextInput  # Default widget to use when rendering this type of Field.
    hidden_widget = HiddenInput  # Default widget to use when rendering this as "hidden".
    default_validators = []  # Default set of validators
@@ -185,7 +191,7 @@ class Field(object):
            return self.limit_choices_to()
        return self.limit_choices_to

    def _has_changed(self, initial, data):
    def has_changed(self, initial, data):
        """
        Return True if data differs from initial.
        """
@@ -629,7 +635,7 @@ class FileField(Field):
            return initial
        return data

    def _has_changed(self, initial, data):
    def has_changed(self, initial, data):
        if data is None:
            return False
        return True
@@ -744,7 +750,7 @@ class BooleanField(Field):
        if not value and self.required:
            raise ValidationError(self.error_messages['required'], code='required')

    def _has_changed(self, initial, data):
    def has_changed(self, initial, data):
        # Sometimes data or initial could be None or '' which should be the
        # same thing as False.
        if initial == 'False':
@@ -779,7 +785,7 @@ class NullBooleanField(BooleanField):
    def validate(self, value):
        pass

    def _has_changed(self, initial, data):
    def has_changed(self, initial, data):
        # None (unknown) and False (No) are not the same
        if initial is not None:
            initial = bool(initial)
@@ -906,7 +912,7 @@ class MultipleChoiceField(ChoiceField):
                    params={'value': val},
                )

    def _has_changed(self, initial, data):
    def has_changed(self, initial, data):
        if initial is None:
            initial = []
        if data is None:
@@ -1084,14 +1090,14 @@ class MultiValueField(Field):
        """
        raise NotImplementedError('Subclasses must implement this method.')

    def _has_changed(self, initial, data):
    def has_changed(self, initial, data):
        if initial is None:
            initial = ['' for x in range(0, len(data))]
        else:
            if not isinstance(initial, list):
                initial = self.widget.decompress(initial)
        for field, initial, data in zip(self.fields, initial, data):
            if field._has_changed(field.to_python(initial), data):
            if field.has_changed(field.to_python(initial), data):
                return True
        return False

Loading