Loading django/db/models/fields/__init__.py +2 −0 Original line number Diff line number Diff line Loading @@ -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): Loading tests/model_fields/models.py +4 −0 Original line number Diff line number Diff line Loading @@ -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) Loading tests/model_fields/test_durationfield.py +6 −1 Original line number Diff line number Diff line Loading @@ -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): Loading @@ -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): Loading Loading
django/db/models/fields/__init__.py +2 −0 Original line number Diff line number Diff line Loading @@ -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): Loading
tests/model_fields/models.py +4 −0 Original line number Diff line number Diff line Loading @@ -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) Loading
tests/model_fields/test_durationfield.py +6 −1 Original line number Diff line number Diff line Loading @@ -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): Loading @@ -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): Loading