[英]data in serializer is always empty
I have following serializer:我有以下序列化程序:
class AdminSerializer(serializers.Serializer):
def validate(self, data):
user = data.get("user_pk")
total_licenses = data.get("total_licenses")
#here i do some validation with the vars
But my data is always empty.但是我的数据总是空的。 This is part of my view
这是我观点的一部分
serializer_class = self.get_serializer_class()
serializer = serializer_class(
data=self.request.data,
)
serializer.is_valid(raise_exception=True)
This is my unit test request:这是我的单元测试请求:
response = self.client.patch(
url,
data={"user_pk": self.user.pk, "total_licenses": 3},
)
Why is my 'data' always empty?为什么我的“数据”总是空的?
You need to call serializer.save()
before you can access .data
attribute on a serializer.您需要先调用
serializer.save()
才能访问序列化程序上的.data
属性。 Otherwise, you can access .validated_data
attribute on your serializer否则,您可以访问序列化程序上的
.validated_data
属性
You have to explicitly specify fields in your serializer:您必须在序列化程序中明确指定字段:
class AdminSerializer(serializers.Serializer):
user_pk = serializers.IntegerField()
total_licenses = serializers.IntegerField()
def validate(self, data):
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.