mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-02 19:40:13 +03:00
Add test for default argument in PrimaryKeyRelatedField
This commit is contained in:
parent
916d8ab37d
commit
c94cc64043
|
@ -883,6 +883,34 @@ class ManyRelatedTests(TestCase):
|
||||||
}
|
}
|
||||||
self.assertEqual(serializer.data, expected)
|
self.assertEqual(serializer.data, expected)
|
||||||
|
|
||||||
|
def test_default_value(self):
|
||||||
|
writer = Person()
|
||||||
|
writer.save()
|
||||||
|
|
||||||
|
def callable_default():
|
||||||
|
return writer.id
|
||||||
|
|
||||||
|
class BlogPostSerializer(serializers.ModelSerializer):
|
||||||
|
title = serializers.CharField(default=callable_default)
|
||||||
|
writer = serializers.PrimaryKeyRelatedField(many=False, read_only=False, required=False, default=callable_default)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = BlogPost
|
||||||
|
fields = ('id', 'title', 'writer')
|
||||||
|
|
||||||
|
serializer = BlogPostSerializer(data={})
|
||||||
|
|
||||||
|
self.assertTrue(serializer.is_valid())
|
||||||
|
|
||||||
|
serializer.save()
|
||||||
|
|
||||||
|
expected = {
|
||||||
|
'id': 1,
|
||||||
|
'title': str(callable_default()),
|
||||||
|
'writer': callable_default()
|
||||||
|
}
|
||||||
|
self.assertEqual(serializer.data, expected)
|
||||||
|
|
||||||
|
|
||||||
class RelatedTraversalTest(TestCase):
|
class RelatedTraversalTest(TestCase):
|
||||||
def test_nested_traversal(self):
|
def test_nested_traversal(self):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user