使用Django REST Framework,我有2个序列化器:CommentSerializer
和CommentSerializer
。
PageSerializer
取决于一些额外的" context"值,但它没有直接获取它,而是需要从class CommentSerializer(serializers.ModelSerializer):
...
my_field = serializers.SerializerMethodField()
def get_my_field(self, comment):
my_value = self.context['my_value']
...
class PageSerializer(serializers.ModelSerializer):
...
comments = CommentSerializer(
many=True,
context={'my_value': my_value} # my_value doesn't exist until __init__ is called, so I can't pass it
)
...
my_value = 1
page_serializer = PageSerializer(page, context={'my_value': my_value})
获取它,因为它们具有嵌套关系。
所以我需要这样的东西:
submission_controller.rb
但是,当然,这段代码无法正常工作 我可以在这做什么样的解决方法?
答案 0 :(得分:2)
当你在序列化工具中定义关系时,PageSerializer
的上下文会在页面的评论被序列化时自动传递给CommentSerializer
。
因此,只需定义comments = CommentSerializer(many=True)
即可。