Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Django:order_id के अनुसार order_detail_data कैसे प्राप्त करें

यदि आप कच्चे प्रश्नों का उपयोग कर रहे हैं, तो आपको केवल डेटा मर्ज करने की आवश्यकता है। कुछ इस तरह काम करना चाहिए,

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 मॉडल का उपयोग करने में सोचना चाहिए। यह ढांचे की पूरी क्षमता का लाभ उठाने का तरीका है।

आशा है कि यह मदद करता है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL पर गतिरोध पंक्तियों को हटा रहा है

  2. MySQL सभी टेबल्स का कोलेशन बदलें

  3. बहु-स्तंभ नाम खोजें MySQL

  4. सर्वर टाइमज़ोन यूटीसी नहीं होने पर जावा में MySQL से यूटीसी डेटाटाइम फ़ील्ड पुनर्प्राप्त कर रहा है

  5. क्या नोडज पर MySQL के लिए कोई ड्राइवर है जो संग्रहीत प्रक्रियाओं का समर्थन करता है?