{cd2}和{cd2}具有序列化框架。在
CommentSerializer
依赖于一些额外的“context”值,但它不能直接获取它,而是需要从PageSerializer
获取它,因为它们具有嵌套关系。在
所以我需要这样的东西:
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})
但是,当然,这个代码不能工作。
我能在这里做什么样的工作?在
当您像以前那样在序列化程序中定义关系时,
PageSerializer
的上下文将在页面的注释序列化时自动传递给CommentSerializer
。在所以,只要定义
comments = CommentSerializer(many=True)
就可以了。在相关问题 更多 >
编程相关推荐