Commit ee86e590 authored by Michał Modzelewski's avatar Michał Modzelewski Committed by Tim Graham
Browse files

Refs #2443 -- Allowed creation of objects with NULL DurationFields

parent 5a4ac4ea
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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):
+4 −0
Original line number Diff line number Diff line
@@ -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)

+6 −1
Original line number Diff line number Diff line
@@ -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):