summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichaƂ Modzelewski <michal.modzelewski@gmail.com>2015-01-02 02:47:49 +0100
committerTim Graham <timograham@gmail.com>2015-01-07 08:33:26 -0500
commitee86e590516250a7db7bf7c9a979ced4faf4edd7 (patch)
treecdc31e7108030b8497728dfdfe1e7e0a2bfe0bff
parent5a4ac4ead986387216e0c0e1b4d4b6a537f87e0b (diff)
Refs #2443 -- Allowed creation of objects with NULL DurationFields
-rw-r--r--django/db/models/fields/__init__.py2
-rw-r--r--tests/model_fields/models.py4
-rw-r--r--tests/model_fields/test_durationfield.py7
3 files changed, 12 insertions, 1 deletions
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py
index e090dc625a..5d34137bf2 100644
--- a/django/db/models/fields/__init__.py
+++ b/django/db/models/fields/__init__.py
@@ -1651,6 +1651,8 @@ class DurationField(Field):
def get_db_prep_value(self, value, connection, prepared=False):
if connection.features.has_native_duration_field:
return value
+ if value is None:
+ return None
return value.total_seconds() * 1000000
def get_db_converters(self, connection):
diff --git a/tests/model_fields/models.py b/tests/model_fields/models.py
index 376a59c413..2c6b707b88 100644
--- a/tests/model_fields/models.py
+++ b/tests/model_fields/models.py
@@ -129,6 +129,10 @@ class DurationModel(models.Model):
field = models.DurationField()
+class NullDurationModel(models.Model):
+ field = models.DurationField(null=True)
+
+
class PrimaryKeyCharModel(models.Model):
string = models.CharField(max_length=10, primary_key=True)
diff --git a/tests/model_fields/test_durationfield.py b/tests/model_fields/test_durationfield.py
index fc2c22af61..0ef160104d 100644
--- a/tests/model_fields/test_durationfield.py
+++ b/tests/model_fields/test_durationfield.py
@@ -5,7 +5,7 @@ from django.core import exceptions, serializers
from django.db import models
from django.test import TestCase
-from .models import DurationModel
+from .models import DurationModel, NullDurationModel
class TestSaveLoad(TestCase):
@@ -16,6 +16,11 @@ class TestSaveLoad(TestCase):
loaded = DurationModel.objects.get()
self.assertEqual(loaded.field, duration)
+ def test_create_empty(self):
+ NullDurationModel.objects.create()
+ loaded = NullDurationModel.objects.get()
+ self.assertEqual(loaded.field, None)
+
class TestQuerying(TestCase):