diff options
| author | MichaĆ Modzelewski <michal.modzelewski@gmail.com> | 2015-01-02 02:47:49 +0100 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2015-01-07 08:33:26 -0500 |
| commit | ee86e590516250a7db7bf7c9a979ced4faf4edd7 (patch) | |
| tree | cdc31e7108030b8497728dfdfe1e7e0a2bfe0bff | |
| parent | 5a4ac4ead986387216e0c0e1b4d4b6a537f87e0b (diff) | |
Refs #2443 -- Allowed creation of objects with NULL DurationFields
| -rw-r--r-- | django/db/models/fields/__init__.py | 2 | ||||
| -rw-r--r-- | tests/model_fields/models.py | 4 | ||||
| -rw-r--r-- | tests/model_fields/test_durationfield.py | 7 |
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): |
