diff options
| author | Tim Graham <timograham@gmail.com> | 2015-02-09 08:15:26 -0500 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2015-02-09 10:21:15 -0500 |
| commit | 9744529c1245dc675cf69fd76448aa60dc934941 (patch) | |
| tree | 2b24122e2f1e54601904edf66bc1938eaf5c08ee | |
| parent | ac576e9f454db4942335a9a5df6168d31d4f98fe (diff) | |
[1.8.x] Fixed #24302 -- Added DurationField.formfield()
Backport of 2d7c27d3870e57edd1b2ac46b49f0a8804753a1e from master
| -rw-r--r-- | django/db/models/fields/__init__.py | 7 | ||||
| -rw-r--r-- | tests/model_fields/test_durationfield.py | 9 |
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) |
