在drf中使用orjson/ujson

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

大家好,我正在研究返回 JSON 数据等的更快方法。我知道 FastAPI 使用

ujson
orjson

有没有办法将标准的 drf 序列化程序替换为 orjson?

编辑 可以说我有这个观点

class ProfileViewSet(viewsets.ModelViewSet):
    permission_classes = [ProfilePermission]
    serializer_class = ProfileSerializer
    pagination_class = ProfilePagination
    filterset_class  = ProfileFilter

    def get_queryset(self):

        current_id = self.request.user.id
        blocked_users = Blocked.objects.filter(user__id=current_id).values('blocked')

        users_taken_action = Action.objects.filter(user__id=current_id).values('action_user')

        users_not_taken_action = Profile.objects.exclude(user__in=users_taken_action) \
            .exclude(user__in=blocked_users).exclude(user__id=current_id)

        
        return users_not_taken_action

和这个序列化器

class ProfileSerializer(WritableNestedModelSerializer, serializers.ModelSerializer):
    
    fav_data = serializers.SerializerMethodField(read_only=True)
    images = serializers.SerializerMethodField(read_only=True)
    user = UserSerializer(read_only=True)
    place = PlaceSerializer(read_only=True)
    

    def get_images(self, obj):
        return PhotoSerializer(UserPhoto.objects.filter(user=obj.user.id), many=True).data

    def get_fav_data(self, obj):
        fav_data = Favorite.objects.get(user=obj.user.id).data
        
        return {
            "id": fav_data.id,
            "name": fav_data.name,
            "category": fav_data.category,
        }

    class Meta:
        model = Profile
        fields = '__all__'
        depth = 1
        

如何将其转换为 ojson/urjson

python django django-rest-framework django-serializer
© www.soinside.com 2019 - 2024. All rights reserved.