class Order_ListAPIView(APIView):
def get(self,request,format=None):
totalData=[]
if request.method == 'GET':
cur,conn = connection()
order_query = ''' SELECT * FROM orders'''
order_detail_query = ''' SELECT * FROM order_details'''
with conn.cursor(MySQLdb.cursors.DictCursor) as cursor:
cursor.execute(order_detail_query)
order_detail_result = cursor.fetchall()
order_detail_data = list(order_detail_result)
# print(order_detail_data)
cursor.execute(order_query)
order_result = cursor.fetchall()
order_data = list(order_result)
dic = {}
for d in order_detail_data:
if d['order_id'] not in dic:
dic[d['order_id']] = []
dic[d['order_id']].append(d)
order_data.append(dic)
totalData.append({"order_data":order_data, })
return Response({"totalData":totalData,},status=status.HTTP_200_OK)
else:
return Response(status=status.HTTP_400_BAD_REQUEST)
вывод:
{
"totalData": [
{
"order_data": [
{
"order_id": 1,
"user_id": 4,
"billing_shipping_id": 5,
"payment_method_id": 1,
"delivery_id": 2,
"txnid": "584ffb7fd622eca10a6d",
"order_no": "1-1583152683-0005",
"delivery_amount": 0.0,
"discount_amount": 0.0,
"order_total": 1.0,
"payment_status": "Paid",
"created_datetime": "2020-03-02T18:09:27",
"updated_datetime": "2020-03-02T12:39:27",
"status": "Active",
"mihpayid": "9956109007",
"payuMoneyId": "306043618"
},
{
"order_id": 2,
"user_id": 11,
"billing_shipping_id": 19,
"payment_method_id": 2,
"delivery_id": 2,
"txnid": "",
"order_no": "1-1583152785-0010",
"delivery_amount": 0.0,
"discount_amount": 0.0,
"order_total": 1.0,
"payment_status": "Unpaid",
"created_datetime": "2020-03-02T18:09:45",
"updated_datetime": "2020-03-02T12:39:45",
"status": "Active",
"mihpayid": "",
"payuMoneyId": ""
},
{
"order_id": 3,
"user_id": 12,
"billing_shipping_id": 20,
"payment_method_id": 1,
"delivery_id": 2,
"txnid": "83e066ca75437f3d05b0",
"order_no": "2-1583152964-0019",
"delivery_amount": 0.0,
"discount_amount": 0.0,
"order_total": 2.0,
"payment_status": "Paid",
"created_datetime": "2020-03-02T18:13:43",
"updated_datetime": "2020-03-02T12:43:43",
"status": "Active",
"mihpayid": "9956136979",
"payuMoneyId": "306044826"
},
{
"1": [
{
"order_detail_id": 1,
"order_id": 1,
"user_id": 4,
"product_id": 229,
"product_size_id": 982,
"size_id": 2,
"qty": 1,
"product_price": 1.0,
"order_item_status": "Placed",
"last_status_datatime": "2020-03-02T18:09:27",
"feedback": "",
"created_datetime": "2020-03-02T18:09:27",
"updated_datetime": "2020-03-02T12:39:27",
"status": "Active"
}
],
"2": [
{
"order_detail_id": 2,
"order_id": 2,
"user_id": 11,
"product_id": 229,
"product_size_id": 981,
"size_id": 1,
"qty": 1,
"product_price": 1.0,
"order_item_status": "Cancelled",
"last_status_datatime": "2020-03-02T18:10:19",
"feedback": "0",
"created_datetime": "2020-03-02T18:09:45",
"updated_datetime": "2020-03-02T12:39:45",
"status": "Active"
}
],
"3": [
{
"order_detail_id": 3,
"order_id": 3,
"user_id": 19,
"product_id": 229,
"product_size_id": 982,
"size_id": 2,
"qty": 1,
"product_price": 1.0,
"order_item_status": "Placed",
"last_status_datatime": "2020-03-02T18:32:07",
"feedback": "",
"created_datetime": "2020-03-02T18:32:07",
"updated_datetime": "2020-03-02T13:02:07",
"status": "Active"
},
]
}
]
}
]
}
что я хочу:
{
"totalData": [
{
"order_data": [
{
"order_id": 1,
"user_id": 4,
"billing_shipping_id": 5,
"payment_method_id": 1,
"delivery_id": 2,
"txnid": "584ffb7fd622eca10a6d",
"order_no": "1-1583152683-0005",
"delivery_amount": 0.0,
"discount_amount": 0.0,
"order_total": 1.0,
"payment_status": "Paid",
"created_datetime": "2020-03-02T18:09:27",
"updated_datetime": "2020-03-02T12:39:27",
"status": "Active",
"mihpayid": "9956109007",
"payuMoneyId": "306043618",
"1": [
{
"order_detail_id": 1,
"order_id": 1,
"user_id": 4,
"product_id": 229,
"product_size_id": 982,
"size_id": 2,
"qty": 1,
"product_price": 1.0,
"order_item_status": "Placed",
"last_status_datatime": "2020-03-02T18:09:27",
"feedback": "",
"created_datetime": "2020-03-02T18:09:27",
"updated_datetime": "2020-03-02T12:39:27",
"status": "Active"
],}
},
{
"order_id": 2,
"user_id": 11,
"billing_shipping_id": 19,
"payment_method_id": 2,
"delivery_id": 2,
"txnid": "",
"order_no": "1-1583152785-0010",
"delivery_amount": 0.0,
"discount_amount": 0.0,
"order_total": 1.0,
"payment_status": "Unpaid",
"created_datetime": "2020-03-02T18:09:45",
"updated_datetime": "2020-03-02T12:39:45",
"status": "Active",
"mihpayid": "",
"payuMoneyId": "",
"2": [
{
"order_detail_id": 2,
"order_id": 2,
"user_id": 11,
"product_id": 229,
"product_size_id": 981,
"size_id": 1,
"qty": 1,
"product_price": 1.0,
"order_item_status": "Cancelled",
"last_status_datatime": "2020-03-02T18:10:19",
"feedback": "0",
"created_datetime": "2020-03-02T18:09:45",
"updated_datetime": "2020-03-02T12:39:45",
"status": "Active"
],
}
},
{
"order_id": 3,
"user_id": 12,
"billing_shipping_id": 20,
"payment_method_id": 1,
"delivery_id": 2,
"txnid": "83e066ca75437f3d05b0",
"order_no": "2-1583152964-0019",
"delivery_amount": 0.0,
"discount_amount": 0.0,
"order_total": 2.0,
"payment_status": "Paid",
"created_datetime": "2020-03-02T18:13:43",
"updated_datetime": "2020-03-02T12:43:43",
"status": "Active",
"mihpayid": "9956136979",
"payuMoneyId": "306044826",
"3": [
{
"order_detail_id": 3,
"order_id": 3,
"user_id": 19,
"product_id": 229,
"product_size_id": 982,
"size_id": 2,
"qty": 1,
"product_price": 1.0,
"order_item_status": "Placed",
"last_status_datatime": "2020-03-02T18:32:07",
"feedback": "",
"created_datetime": "2020-03-02T18:32:07",
"updated_datetime": "2020-03-02T13:02:07",
"status": "Active"
]
},
]
}
]
}
я прямую выборку данные с использованием необработанных запросов из баз данных вместо ORM. Я хочу получить order_detail_data внутри order_data в соответствии с order_id, согласно приведенным выше деталям.
Я пытаюсь решить эту проблему, но я не получил никакого возможного ответа, который мог бы решить эту проблему. Было бы здорово, если бы кто-нибудь смог мне помочь с тем, что я ищу. Заранее большое спасибо!