diff --git a/rest_framework/relations.py b/rest_framework/relations.py index 40261f3f..744823c4 100644 --- a/rest_framework/relations.py +++ b/rest_framework/relations.py @@ -32,6 +32,9 @@ class Hyperlink(six.text_type): ret.name = name return ret + def __getnewargs__(self): + return(str(self), self.name,) + is_hyperlink = True diff --git a/tests/test_relations.py b/tests/test_relations.py index fd37e63e..9469cd06 100644 --- a/tests/test_relations.py +++ b/tests/test_relations.py @@ -206,3 +206,14 @@ class TestManyRelatedField(APISimpleTestCase): mvd = MultiValueDict({'baz': ['bar1', 'bar2']}) assert empty == self.field.get_value(mvd) + + +class TestHyperlink: + def setup(self): + self.default_hyperlink = serializers.Hyperlink('http://example.com', 'test') + + def test_can_be_pickled(self): + import pickle + upkled = pickle.loads(pickle.dumps(self.default_hyperlink)) + assert upkled == self.default_hyperlink + assert upkled.name == self.default_hyperlink.name