Получение абсолютного URL изображения с помощью django-treebeard tree responce

Здравствуйте, в настоящее время я реализовал пакет django-treebeard для структуры дерева архива для categories.

Здесь я столкнулся с проблемой в ответе с URL изображения.

Я не вижу Absolute URL категорий изображений

NOTE - сериализатор не работает с этой рекурсивной древовидной структурой. Я уже знаю, что вы можете передать context = {'request':request} в сериализатор, но в моем случае он не работает, потому что это рекурсивная древовидная структура.

views.py

class CategoryAPI(APIView):
    def get(self, request):
        try:
            if CategoryModel.objects.count() > 0:
                categories = CategoryModel.dump_bulk()
                # serializer = CategorySerializer(instance=categories, many=True)
                # print(serializer)
                return Response({"status":True,"categories":categories}, status=status.HTTP_200_OK)
            else:
                return Response({'message': 'Categories not found.'}, status=status.HTTP_200_OK)
        except Exception as e:
            return Response({'error':str(e)})

APi GET Responce выглядит так

{
    "status": true,
    "categories": [
        {
            "data": {
                "name": "Fruits",
                "image": "Categories/download_3_Vg6Rv37.jfif"
            },
            "id": 1,
            "children": [
                {
                    "data": {
                        "name": "Apple",
                        "image": "Categories/download_6zbqDvn.jfif"
                    },
                    "id": 2,
                    "children": [
                        {
                            "data": {
                                "name": "Green Kasmiri Apple",
                                "image": "Categories/download_2_HaMCXyc.jfif"
                            },
                            "id": 10
                        }
                    ]
                },
                {
                    "data": {
                        "name": "Banana",
                        "image": "Categories/download_4_Mn5h9nL.jfif"
                    },
                    "id": 3
                },
                {
                    "data": {
                        "name": "Mango",
                        "image": "Categories/download_5_4RkBFcS.jfif"
                    },
                    "id": 5
                },
                {
                    "data": {
                        "name": "Orange",
                        "image": "Categories/download_6_vWVEQgm.jfif"
                    },
                    "id": 4
                }
            ]
        },
        {
            "data": {
                "name": "Health",
                "image": "Categories/images_fwp1mBB.jfif"
            },
            "id": 6
        }
    ]
}

Я хочу ответить так

{
    "status": true,
    "categories": [
        {
            "data": {
                "name": "Fruits",
                "image": "http://127.0.0.1:8000/media/Categories/download_3_Vg6Rv37.jfif"
            },
            "id": 1,
            "children": [
                {
                    "data": {
                        "name": "Apple",
                        "image": "http://127.0.0.1:8000/media/Categories/download_6zbqDvn.jfif"
                    },
                    "id": 2,
                    "children": [
                        {
                            "data": {
                                "name": "Green Kasmiri Apple",
                                "image": "http://127.0.0.1:8000/media/Categories/download_2_HaMCXyc.jfif"
                            },
                            "id": 10
                        }
                    ]
                },
                {
                    "data": {
                        "name": "Banana",
                        "image": "http://127.0.0.1:8000/media/Categories/download_4_Mn5h9nL.jfif"
                    },
                    "id": 3
                },
                {
                    "data": {
                        "name": "Mango",
                        "image": "http://127.0.0.1:8000/media/Categories/download_5_4RkBFcS.jfif"
                    },
                    "id": 5
                },
                {
                    "data": {
                        "name": "Orange",
                        "image": "http://127.0.0.1:8000/media/Categories/download_6_vWVEQgm.jfif"
                    },
                    "id": 4
                }
            ]
        },
        {
            "data": {
                "name": "Health",
                "image": "http://127.0.0.1:8000/media/Categories/images_fwp1mBB.jfif"
            },
            "id": 6
        }
    ]
}
Вернуться на верх