美好的一天
我需要更新validated_data dict
例如
class ProductsApiView(APIView):
permission_classes = [AllowAny]
def post(self, request):
serializer = ProductSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
product = serializer.save()
print(serializer.validated_data)
return Response({'message': 'created'}, status=status.HTTP_201_CREATED)
class ProductSerializer(serializers.ModelSerializer):
def create(self, validated_data):
validated_data['my_data'] = 'my_new_data'
return super(ProductSerializer, self).create(validated_data)
class Meta:
model = Product
fields = ['id', 'title']
当我制作print(serializer.validated_data)
时OrderedDict([('title', 'testttt')])
为什么在dict中没有我的数据" my_data" ?
答案 0 :(得分:0)
通过在实例化序列化程序时传递上下文参数,可以提供任意附加上下文。例如:
serializer = AccountSerializer(account, context={'request': request})
serializer.data
通过访问self.context属性,可以在任何序列化器字段逻辑中使用上下文字典,例如自定义.to_representation()方法。