यदि आप कच्चे प्रश्नों का उपयोग कर रहे हैं, तो आपको केवल डेटा मर्ज करने की आवश्यकता है। कुछ इस तरह काम करना चाहिए,
def merge_order_data_and_detail(orders, details):
"""Group details by order_id and merge it in orders."""
# create dictionary key:order_id value:[order_detail_data]
dic = {}
for d in details:
if d['order_id'] not in dic:
dic[d['order_id']] = []
dic[d['order_id']].append(d)
# iterate orders and add details
for o in orders:
if o['order_id'] in dic:
o['order_detail_data'] = dic[o['order_id']]
orders = [
{
"order_id": 1,
"user_id": 5
},
{
"order_id": 2,
"user_id": 50
}
]
details = [
{
"order_detail_id": 1,
"order_id": 1,
"user_id": 5,
"product_id": 202
},
{
"order_detail_id": 2,
"order_id": 1,
"user_id": 5,
"product_id": 203
},
{
"order_detail_id": 3,
"order_id": 2,
"user_id": 50,
"product_id": 402
},
{
"order_detail_id": 4,
"order_id": 2,
"user_id": 50,
"product_id": 403
}
]
merge_order_data_and_detail(orders, details)
print(orders)
परिणाम:
[{'order_id': 1, 'user_id': 5, 'order_detail_data': [{'order_detail_id': 1, 'order_id': 1, 'user_id': 5, 'product_id': 202}, {'order_detail_id': 2, 'order_id': 1, 'user_id': 5, 'product_id': 203}]}, {'order_id': 2, 'user_id': 50, 'order_detail_data': [{'order_detail_id': 3, 'order_id': 2, 'user_id': 50, 'product_id': 402}, {'order_detail_id': 4, 'order_id':
2, 'user_id': 50, 'product_id': 403}]}]
मैं परीक्षण को आसान बनाने के लिए बहुत सारे ऑर्डर और विवरण विशेषताओं को हटा देता हूं।
मेरे पास पूरी तस्वीर नहीं है, लेकिन अगर आप पहले से इसका उपयोग नहीं कर रहे हैं तो Django मॉडल का उपयोग करने में सोचना चाहिए। यह ढांचे की पूरी क्षमता का लाभ उठाने का तरीका है।
आशा है कि यह मदद करता है।