1
0
mirror of https://github.com/django/django.git synced 2025-07-19 17:19:12 +00:00

[1.8.x] Fixed #26557 -- Converted empty strings to None when saving GenericIPAddressField.

Backport of 4681d65048ca2553895e10c2c492997b0a78ffba from master
This commit is contained in:
Joshua Phillips 2016-04-29 11:44:56 +01:00 committed by Tim Graham
parent 7934695a0f
commit 052e1f17ca
3 changed files with 12 additions and 1 deletions

View File

@ -481,7 +481,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

@ -11,3 +11,6 @@ Bugfixes
* Fixed ``TimeField`` microseconds round-tripping on MySQL and SQLite * Fixed ``TimeField`` microseconds round-tripping on MySQL and SQLite
(:ticket:`26498`). (:ticket:`26498`).
* Restored conversion of an empty string to null when saving values of
``GenericIPAddressField`` on SQLite and MySQL (:ticket:`26557`).

View File

@ -722,6 +722,14 @@ class GenericIPAddressFieldTests(test.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()