diff --git a/docs/api-guide/relations.md b/docs/api-guide/relations.md index 979c3326c..fd53acbc8 100644 --- a/docs/api-guide/relations.md +++ b/docs/api-guide/relations.md @@ -501,7 +501,7 @@ For example, given the following model for a tag, which has a generic relationsh tagged_object = GenericForeignKey('content_type', 'object_id') def __unicode__(self): - return self.tag + return self.tag_name And the following two models, which may be have associated tags: diff --git a/rest_framework/fields.py b/rest_framework/fields.py index faf41e7a0..159784ea3 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -1189,7 +1189,7 @@ class DurationField(Field): def to_internal_value(self, value): if isinstance(value, datetime.timedelta): return value - parsed = parse_duration(value) + parsed = parse_duration(six.text_type(value)) if parsed is not None: return parsed self.fail('invalid', format='[DD] [HH:[MM:]]ss[.uuuuuu]') diff --git a/tests/test_fields.py b/tests/test_fields.py index 8065c8260..c1d3e3a49 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -1069,6 +1069,7 @@ class TestDurationField(FieldValues): '3 08:32:01.000123': datetime.timedelta(days=3, hours=8, minutes=32, seconds=1, microseconds=123), '08:01': datetime.timedelta(minutes=8, seconds=1), datetime.timedelta(days=3, hours=8, minutes=32, seconds=1, microseconds=123): datetime.timedelta(days=3, hours=8, minutes=32, seconds=1, microseconds=123), + 3600: datetime.timedelta(hours=1), } invalid_inputs = { 'abc': ['Duration has wrong format. Use one of these formats instead: [DD] [HH:[MM:]]ss[.uuuuuu].'],