Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Sygnał zapisu post Django wywoływany dwukrotnie pomimo uid

Ok, więc przeniosłem import do views.py (lub models.py i chociaż importowano go tylko raz, wywoływano go dwukrotnie.

Problem polegał na tym, że post_save sygnał był wywoływany, gdy obiekt został utworzony, a także zapisany. Nie mam pojęcia dlaczego, więc dodałem obejście, które teraz działa

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

Edycja:

post_save został wywołany dwukrotnie, ponieważ użyłem .create(...) co jest równoważne z __init__(...) i .save() .

Wniosek

dispatch_uid działa, a wykonywanie pojedynczych importów jest nadal dobrą praktyką.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa funkcja LTRIM() w MySQL

  2. #1273 – Nieznane zestawienie:„utf8mb4_unicode_520_ci”

  3. Zaktualizuj formularz za pomocą Ajax, PHP, MYSQL

  4. Pozycja użytkownika MYSQL SELECT (więcej niż x i mniej niż y)

  5. Jak zmusić Django do pracy z MySQL w XAMPP?