在Django Rest框架应用程序中测试我的功能时,我需要获得一个对象,我们称之为Foo
,这个对象有一些嵌套关系。我可以通过向APIClient
发出请求来获得它,如下所示:
class FooTest(TestCase):
def setUp(self):
self.client = APIClient()
def test_foo_feature(self):
foo_id = generator.generateFoo().id
foo = self.client.get(reverse('foo-detail', args=[foo_id])).data
我想知道我是否可以以某种方式直接调用我的FooSerializer
来获得我的Foo
对象与嵌套关系,而不是在APIClient
的帮助下通过视图,因为简单地调用Foo.objects.get(id=foo_id)
不会返回嵌套关系。
可以像这样将实例直接传递给序列化器(在DRF文档中指定):
from some_app.serializers import FooSerializer
class FooTest(TestCase):
def setUp(self):
self.client = APIClient()
def test_foo_feature(self):
foo_id = generator.generateFoo().id
foo = Foo.objects.get(id=foo_id)
serialized_data = FooSerializer(foo).data