How can I response to the front a custom-built object in Django/Python?

I’m newbie in building APIs with Django/Python

I built an object in the server side, and I want to send it to the front. I built it on the fly, without a class. it's a dictionary object with arrays in it

def whole_menu(request, restaurant_id):
    menu = {}
    menu["restaurant"] = Restaurant.objects.get(id=restaurant_id)
    menu["categories"] = []
    category_serializer = Category.objects.filter(restaurant=restaurant_id)
    category_index = 0
    for category in category_serializer:
        menu["categories"].append({})
        menu["categories"][category_index]["name"] = category.name
        menu["categories"][category_index]["description"] = category.description
        menu["categories"][category_index]["image_url"] = category.image_url
        menu["categories"][category_index]["dishes"] = []
        dish_serializer = Dish.objects.filter(category=category.id)
        dish_index = 0
        for dish in dish_serializer:
            menu["categories"][category_index]["dishes"].append({})
            menu["categories"][category_index]["dishes"][dish_index]["name"] = dish.name
            menu["categories"][category_index]["dishes"][dish_index][
                "description"
            ] = dish.description
            menu["categories"][category_index]["dishes"][dish_index][
                "price"
            ] = dish.price
            menu["categories"][category_index]["dishes"][dish_index][
                "image_url"
            ] = dish.image_url
            dish_index = dish_index + 1
        category_index = category_index + 1
    print(menu)
    return HttpResponse(menu)

I tried sending the object with JsonResponse, HttpResponse and even rest_framework.response.Response, but it won’t work

Whit this approach I get restaurantcategories (???)

What could be the way to send a custom-built object to the front?

Back to Top