sql >> Databasteknik >  >> RDS >> Mysql

Django post spara signal blir anropad två gånger trots uid

Ok, så jag flyttade importen till views.py (eller models.py och medan det bara importerades en gång, anropades det två gånger.

Problemet var att post_save signalen anropades när objektet skapades och sparades. Jag har ingen aning om varför så jag lade till en lösning som nu fungerar

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

Redigera:

post_save blev uppringd två gånger eftersom jag använde .create(...) vilket motsvarar __init__(...) och .save() .

Slutsats

dispatch_uid fungerar och att göra enstaka importer är fortfarande en bra praxis.



  1. SQLite JSON_OBJECT()

  2. SQL Server-låsets anatomi och de bästa sätten att undvika dem

  3. Hur man säkerhetskopierar/exporterar MySQL-databas med PHP

  4. Hur schemalägger man en MySQL-fråga?