【问题标题】:Django rest API formatting dataDjango rest API 格式化数据
【发布时间】:2019-10-09 21:35:37
【问题描述】:

我是 Django REST API 的新手。我为我的项目创建了一个 API,用户可以通过 API 从系统获取数据。我序列化数据并传递,但我也想计算结果并传递该值。

我的 view.py 在这里

    def categorySearch(request, slug):
        itemViewCategory = Item.objects.raw('''select *, company.slug as companySlug, company.name as companyName, 
        field.id as fieldId, field.name as fieldName, category.name as categoryName from company 
        inner join category on company.business_type = category.id inner join category_field on 
        category_field.category_id = category.id inner join custom_field as field on category_field.field_id = field.id 
        where category.id = (select id from category where slug= %s) and field.name LIKE %s order by company.name ''', [slug, product])

        itemViewCategoryCount = Item.objects.raw(
            '''select *, COUNT(company.name) as companyCount from company inner join category on 
             company.business_type = category.id where category.id = (select id from category where slug= %s) 
             order by company.name ''', [slug])

        results = []
        for val in itemViewCategory:
            place_json = {}
            place_json['name'] = val.name
            place_json['email'] = val.email
            place_json['address'] = val.address
            results.append(place_json)
        return JsonResponse(results, safe=False)

它的返回数据是这样的

[
    {
        "name": "Washing Plants",
        "email": "ababil.washing@yahoo.com",
        "address": "ababil.washing@yahoo.com"
    },
    {
        "name": "Washing Plants",
        "email": "info@dekkoisho.com",
        "address": "Holding # 79/1, Chandra, Kaliakoir"
    },
    {
        "name": "Washing Plants",
        "email": "aznmery90@yahoo.com",
        "address": "79/8/2 Bibir Bagicha ( 4 No. Gate )\r\nNorth Jatrabari, Dhaka-1205."
    },

]

但我想要这种类型的数据格式

    {

        "statuscode": "0",

        "message": "Success",

        "data": [

            {

            "companyName": "Adorn Knitwear Ltd.",

            "phone": "01713047421",

            "city": "Dhaka"

        },

        {

            "companyName": "Adury Apparels Ltd.",

            "phone": "029333274",

            "city": "Dhaka"

        },

        {

            "companyName": "Advance World Ltd.",

            "phone": "01711537851",

            "city": "Dhaka"

        },

        {

            "companyName": "Afaku Apparels Ltd.",

            "phone": "01711869977",

            "city": "Dhaka"

           }

    ],

    "common": {

        "totalCompany": "104",

    }

}

现在我怎样才能像这样格式化我的数据?

【问题讨论】:

    标签: json django api django-rest-framework


    【解决方案1】:
        for val in itemViewCategory:
                place_json = {}
                place_json['name'] = val.name
                place_json['email'] = val.email
                place_json['address'] = val.address
                results.append(place_json)
       final_result = {}
       final_result['data'] = results
       final_result["statuscode"] = 0
       final_result["message"] = "success"
       return JsonResponse(final_result,safe=False)
    

    【讨论】:

    • 我尝试过,但它返回 list indices must be integers or slices, not str 错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多