请求在 django to_representation 序列化器方法中可用吗?
Is request available inside django to_representation serializer method?
我正在尝试在 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)
您需要通过序列化程序上下文传递请求。如果您使用通用视图和 get_serializer
函数而不是直接访问序列化程序,则默认情况下会传递请求。否则你可以像这样显式传递。
serializer = YouSerializerClass(#other arguments here, context={'request': request})
像这样的一般视图
serializer = self.get_serializer(# your argument here)
然后你可以像这样从任何地方的序列化程序访问它
request = self.context.get('request')
我正在尝试在 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)
您需要通过序列化程序上下文传递请求。如果您使用通用视图和 get_serializer
函数而不是直接访问序列化程序,则默认情况下会传递请求。否则你可以像这样显式传递。
serializer = YouSerializerClass(#other arguments here, context={'request': request})
像这样的一般视图
serializer = self.get_serializer(# your argument here)
然后你可以像这样从任何地方的序列化程序访问它
request = self.context.get('request')