Django序列化程序数据集上下文



有没有一种方法可以访问整个数据集,这些数据集将在序列化程序处理之前由它进行处理。

原因是在序列化数据之前,我想做一个批量处理。这样我就可以提高序列化过程的性能,以提高向客户端的传递速度(仅在检索时创建时不需要这样做(

class MySerializer(serializers.ModelSerializer):
def before_process(self, *args, **kwargs):
# TODO: Some bulk work here with the self.full_unprocessed_dataset
self.bulk_results = from_the_above_result
def some_function_field(self):
return self.bulk_results['some_key']

这可能吗?

您可以使用validate方法。

class MySerializer(serializers.ModelSerializer):
def validate(self,attrs):
# your data inside attrs you can access like that
your_field_value = attrs['your_field']

您可以在Serializer上使用update方法吗?

class CommentSerializer(serializers.Serializer):
email = serializers.EmailField()
content = serializers.CharField(max_length=200)
created = serializers.DateTimeField()
def create(self, validated_data):
return Comment(**validated_data)
def update(self, instance, validated_data):
instance.email = validated_data.get('email', instance.email)
instance.content = validated_data.get('content', instance.content)
instance.created = validated_data.get('created', instance.created)
return instance

最新更新