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

Django पोस्ट सेव सिग्नल यूआईडी के बावजूद दो बार कॉल किया जा रहा है

ठीक है, इसलिए मैंने आयात को views.py में स्थानांतरित कर दिया (या models.py और जबकि इसे केवल एक बार आयात किया जा रहा था, इसे दो बार कॉल किया जा रहा था।

समस्या यह थी कि post_save जब ऑब्जेक्ट बनाया गया था और साथ ही सहेजा गया था तो सिग्नल को कॉल किया जा रहा था। मुझे नहीं पता कि क्यों मैंने एक वर्कअराउंड जोड़ा जो अब काम करता है

created = False

    #Workaround to signal being emitted twice on create and save
    if 'created' in kwargs:
        if kwargs['created']:
            created=True

    #If signal is from object creation, return
    if created:
        return

संपादित करें:

post_save दो बार कॉल किया जा रहा था क्योंकि मैंने .create(...) . का उपयोग किया था जो __init__(...) . के बराबर है और .save()

निष्कर्ष

dispatch_uid काम करता है और एकल आयात करना अभी भी एक अच्छा अभ्यास है।



  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_connect या mysql_pconnect

  2. INT फ़ील्ड पर LIKE तुलना करना

  3. MySQL में संयुक्त पदों की रैंकिंग

  4. मैसकल 2 टेबल में डालें

  5. किसी शर्त के साथ पंक्तियों की गिनती करते समय मुझे MySQL में OR NULL की आवश्यकता क्यों है?