我试图在django中的to_representation序列化程序方法中执行请求检查,但是self.context始终是空的。知道为什么吗?
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)发布于 2022-01-25 08:19:53
您需要通过序列化程序上下文传递请求。如果您使用的是泛型视图和get_serializer函数,而不是直接访问序列化程序,默认情况下请求将被传递。否则,您可以像这样显式地传递。
serializer = YouSerializerClass(#other arguments here, context={'request': request})在像这样的通用视图中
serializer = self.get_serializer(# your argument here)然后您可以从像这样的任何地方的序列化程序访问它。
request = self.context.get('request')https://stackoverflow.com/questions/70845072
复制相似问题