summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2015-02-09 08:15:26 -0500
committerTim Graham <timograham@gmail.com>2015-02-09 10:21:15 -0500
commit9744529c1245dc675cf69fd76448aa60dc934941 (patch)
tree2b24122e2f1e54601904edf66bc1938eaf5c08ee
parentac576e9f454db4942335a9a5df6168d31d4f98fe (diff)
[1.8.x] Fixed #24302 -- Added DurationField.formfield()
Backport of 2d7c27d3870e57edd1b2ac46b49f0a8804753a1e from master
-rw-r--r--django/db/models/fields/__init__.py7
-rw-r--r--tests/model_fields/test_durationfield.py9
2 files changed, 16 insertions, 0 deletions
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py
index c46851c7fe..e487d7abf5 100644
--- a/django/db/models/fields/__init__.py
+++ b/django/db/models/fields/__init__.py
@@ -1692,6 +1692,13 @@ class DurationField(Field):
val = self._get_val_from_obj(obj)
return '' if val is None else duration_string(val)
+ def formfield(self, **kwargs):
+ defaults = {
+ 'form_class': forms.DurationField,
+ }
+ defaults.update(kwargs)
+ return super(DurationField, self).formfield(**defaults)
+
class EmailField(CharField):
default_validators = [validators.validate_email]
diff --git a/tests/model_fields/test_durationfield.py b/tests/model_fields/test_durationfield.py
index 0ef160104d..fece35d57b 100644
--- a/tests/model_fields/test_durationfield.py
+++ b/tests/model_fields/test_durationfield.py
@@ -1,6 +1,7 @@
import datetime
import json
+from django import forms
from django.core import exceptions, serializers
from django.db import models
from django.test import TestCase
@@ -70,3 +71,11 @@ class TestValidation(TestCase):
"'not a datetime' value has an invalid format. "
"It must be in [DD] [HH:[MM:]]ss[.uuuuuu] format."
)
+
+
+class TestFormField(TestCase):
+ # Tests for forms.DurationField are in the forms_tests app.
+
+ def test_formfield(self):
+ field = models.DurationField()
+ self.assertIsInstance(field.formfield(), forms.DurationField)