将上下文从一个序列化程序传递到另一个序列化程序?

2024-09-26 18:18:22 发布

您现在位置:Python中文网/ 问答频道 /正文

{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})

但是,当然,这个代码不能工作。
我能在这里做什么样的工作?在


Tags: self框架field序列化关系valuemycontext

热门问题