summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Phillips <jphillips@imap.cc>2016-04-29 11:44:56 +0100
committerTim Graham <timograham@gmail.com>2016-04-29 10:14:48 -0400
commite0af590bdecfa3a5f013715f01456cfb8fd870dc (patch)
treead71e54339d85a7e33eca5a14a12489fdd9a7807
parentd2338bae786f2fabfd01c30522fda9d79e02eb45 (diff)
[1.9.x] Fixed #26557 -- Converted empty strings to None when saving GenericIPAddressField.
Backport of 4681d65048ca2553895e10c2c492997b0a78ffba from master
-rw-r--r--django/db/backends/base/operations.py2
-rw-r--r--docs/releases/1.9.6.txt3
-rw-r--r--tests/model_fields/tests.py8
3 files changed, 12 insertions, 1 deletions
diff --git a/django/db/backends/base/operations.py b/django/db/backends/base/operations.py
index acca12708a..5d3cddff9d 100644
--- a/django/db/backends/base/operations.py
+++ b/django/db/backends/base/operations.py
@@ -497,7 +497,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):
"""
diff --git a/docs/releases/1.9.6.txt b/docs/releases/1.9.6.txt
index 7e3f6aed6a..769d04945a 100644
--- a/docs/releases/1.9.6.txt
+++ b/docs/releases/1.9.6.txt
@@ -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`).
diff --git a/tests/model_fields/tests.py b/tests/model_fields/tests.py
index cc6639b032..b103baeedb 100644
--- a/tests/model_fields/tests.py
+++ b/tests/model_fields/tests.py
@@ -900,6 +900,14 @@ class GenericIPAddressFieldTests(test.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()