Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
269 views
in Technique[技术] by (71.8m points)

testing - Django RF. how to get a Django Model with nested relationship

While testing my features in a Django Rest framework App, I need to get an object, let's call it Foo and this object has some nested relationships. I can get it by my making a request with the APIClient as such :

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

I was wondering if I could call directly my FooSerializer in a certain way to get my Foo object with the nested relationships, instead of passing by the view with the help of the APIClient because simply calling Foo.objects.get(id=foo_id) doesn't return the nested relationships.

question from:https://stackoverflow.com/questions/66051661/django-rf-how-to-get-a-django-model-with-nested-relationship

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

It is possible to pass an instance directly to a serializer like this (as specified in the DRF documentation):

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...