2012-07-10 15 views
6

अद्यतन: एक इनाम गयी। कृपया का उदाहरण दिया गया और मैं सबसे अच्छा जवाब को स्वीकार करेंगेDjango "bulk_save" और "bulk_update"

अद्यतन 2: स्पष्ट उदाहरण अब शामिल

Carrying on from the same project, where I asked about bulk_create in a separate thread. अगर वहाँ एक तरह से करने के लिए अनिवार्य रूप से "bulk_save" है मैं सोच रहा था - अगर न के बराबर सम्मिलित या बस अद्यतन अगर यह पहले से मौजूद है।

उदाहरण के लिए:

class Person(models.Model): 
    first_name = models.CharField(max_length=30) 
    last_name = models.CharField(max_length=30) 
    height = models.DecimalField(blank=True, null=True) 
    weight = models.DecimalField(blank=True, null=True) 

मैं इन क्षेत्रों के लिए कुंजी-मान जोड़ों के साथ शब्दकोशों की एक सूची है। मैं नाम से फ़िल्टर करना चाहता हूं, और फिर ऊंचाई और/या वजन को अपडेट करना चाहता हूं क्योंकि ये मेरे खिलाड़ी अभी भी बढ़ रहे हैं और कंडीशनिंग कर रहे हैं। यदि "bulk_save" का कोई आसान तरीका नहीं है, तो थोक अपडेट भी सहायक होगा।

Reference: June 8, 2012 - "get_or_create()" patch at django project

Bulk_update reference

+0

मुझे समझ नहीं आता क्या जानकारी आप हर वस्तुओं के लिए अद्यतन करने के लिए कोशिश कर रहे हैं और क्या जानकारी आप मौजूदा वस्तुओं के लिए खोज करने के लिए उपयोग करना चाहते हैं। क्या आप हमें एक उदाहरण दे सकते हैं कि आप संभावित रूप से bulk_create_or_update विधि का उपयोग कैसे करना चाहेंगे? ऐसा लगता है कि आप कुछ मौजूदा django विधियों के संयोजन के साथ व्यवहार कर सकते हैं, लेकिन मुझे समझ में नहीं आता कि आप वास्तव में क्या करने की कोशिश कर रहे हैं ... – marianobianchi

+0

@marianobianchi - स्पष्ट उदाहरण जोड़ा गया। धन्यवाद! – snakesNbronies

+0

"मैं नाम से फ़िल्टर करना चाहता हूं" एक अद्यतन ऑपरेशन की तरह लगता है। "bulk_save" एक "bulk_create" की तरह लगता है। मुझे यह भी नहीं पता कि django में bulk_update भी संभव है या नहीं। – jdi

उत्तर

3

मैं सिर्फ था कि मैं नीचे सूचीबद्ध update_many समारोह का एक परिवर्तन काफी पहले से ही गति में सुधार हुआ है लगते हैं।

http://people.iola.dk/olau/python/bulkops.py

अद्यतन - जाहिरा तौर पर DSE2 भी एक विकल्प है।

https://bitbucket.org/weholt/dse2

कल गति परीक्षण के साथ अद्यतन करेगा।

+0

एक और विकल्प के साथ अद्यतन किया गया। कल गति तुलना देंगे। – snakesNbronies

+1

क्या आपको स्पीड टेस्ट मिले? – tr33hous