Django序列化器数据集上下文

问题描述 投票:0回答:2

是否有一种方法可以访问序列化程序处理之前将要处理的整个数据集。

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

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']

这可能吗?

django serializer
2个回答
0
投票

您可以使用验证方法。

class MySerializer(serializers.ModelSerializer):

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

0
投票

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

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
© www.soinside.com 2019 - 2024. All rights reserved.