首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django to_representation序列化程序方法中的请求可用吗?

django to_representation序列化程序方法中的请求可用吗?
EN

Stack Overflow用户
提问于 2022-01-25 07:50:34
回答 1查看 440关注 0票数 0

我试图在django中的to_representation序列化程序方法中执行请求检查,但是self.context始终是空的。知道为什么吗?

代码语言:javascript
复制
class TwitterAccountsListsSerializer(serializers.ModelSerializer):
    class Meta:
        model = TwitterAccountsList
        fields = ["id", "name", "created_at", "is_private", "accounts"]
        extra_kwargs = {
            "accounts": {"write_only": True},
        }
    
    def to_representation(self, instance):
        import pdb; pdb.set_trace()
        # self.context is always an empty dict here {}
        return super().to_representation(instance)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-25 08:19:53

您需要通过序列化程序上下文传递请求。如果您使用的是泛型视图和get_serializer函数,而不是直接访问序列化程序,默认情况下请求将被传递。否则,您可以像这样显式地传递。

代码语言:javascript
复制
serializer = YouSerializerClass(#other arguments here, context={'request': request})

在像这样的通用视图中

代码语言:javascript
复制
serializer = self.get_serializer(# your argument here)

然后您可以从像这样的任何地方的序列化程序访问它。

代码语言:javascript
复制
request = self.context.get('request')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70845072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档