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
type for the backend driver.
"""
return value
return value or None
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
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()
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()