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

This commit is contained in:
Joshua Phillips 2016-04-29 11:44:56 +01:00 committed by Tim Graham
parent 2f698cd991
commit 4681d65048
3 changed files with 12 additions and 1 deletions

View File

@ -499,7 +499,7 @@ class BaseDatabaseOperations(object):
Transforms a string representation of an IP address into the expected Transforms a string representation of an IP address into the expected
type for the backend driver. type for the backend driver.
""" """
return value return value or None
def year_lookup_bounds_for_date_field(self, value): def year_lookup_bounds_for_date_field(self, value):
""" """

View File

@ -24,3 +24,6 @@ Bugfixes
* Fixed a regression causing the cached template loader to crash when using * Fixed a regression causing the cached template loader to crash when using
template names starting with a dash (:ticket:`26536`). 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`).

View File

@ -29,6 +29,14 @@ class GenericIPAddressFieldTests(TestCase):
o = GenericIPAddress.objects.get() o = GenericIPAddress.objects.get()
self.assertIsNone(o.ip) 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): def test_save_load(self):
instance = GenericIPAddress.objects.create(ip='::1') instance = GenericIPAddress.objects.create(ip='::1')
loaded = GenericIPAddress.objects.get() loaded = GenericIPAddress.objects.get()