Commit 4681d650 authored by Joshua Phillips's avatar Joshua Phillips Committed by Tim Graham
Browse files

Fixed #26557 -- Converted empty strings to None when saving GenericIPAddressField.

parent 2f698cd9
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -499,7 +499,7 @@ class BaseDatabaseOperations(object):
        Transforms a string representation of an IP address into the expected
        type for the backend driver.
        """
        return value
        return value or None

    def year_lookup_bounds_for_date_field(self, value):
        """
+3 −0
Original line number Diff line number Diff line
@@ -24,3 +24,6 @@ Bugfixes

* Fixed a regression causing the cached template loader to crash when using
  template names starting with a dash (:ticket:`26536`).

* Restored conversion of an empty string to null when saving values of
  ``GenericIPAddressField`` on SQLite and MySQL (:ticket:`26557`).
+8 −0
Original line number Diff line number Diff line
@@ -29,6 +29,14 @@ class GenericIPAddressFieldTests(TestCase):
        o = GenericIPAddress.objects.get()
        self.assertIsNone(o.ip)

    def test_blank_string_saved_as_null(self):
        o = GenericIPAddress.objects.create(ip='')
        o.refresh_from_db()
        self.assertIsNone(o.ip)
        GenericIPAddress.objects.update(ip='')
        o.refresh_from_db()
        self.assertIsNone(o.ip)

    def test_save_load(self):
        instance = GenericIPAddress.objects.create(ip='::1')
        loaded = GenericIPAddress.objects.get()