简体   繁体   English

Django rest API格式化数据

[英]Django rest API formatting data

I am new in Django rest API. 我是Django rest API的新手。 I create an API for my project where user can get data from the system via API. 我为我的项目创建了一个API,用户可以在其中通过API从系统获取数据。 I serialize data and pass also but I also want to count the result and pass that value too. 我对数据进行序列化并传递,但我也想对结果进行计数并传递该值。

my view.py is here 我的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)

where its return data like this 它的返回数据是这样的

[
    {
        "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."
    },

] ]

But I want this type of data formate 但是我想要这种类型的数据

    {

        "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",

    }

}

Now how can I format my data like this? 现在如何格式化这样的数据?

    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)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM