У меня проблема с дублирующимися сигналами.Я посмотрел на соответствующую часть Django docs и аналогичный вопрос о Stackoverflow , но я все еще не могу заставить его работать правильно - то есть, действие, которое я запланировал (создание назапись ActivityLog) на самом деле происходит 4 раза: /
Я добавил dispatch_uid
, и проблема все еще сохраняется, поэтому я предполагаю, что я делаю что-то не так.Можете ли вы намекнуть мне на ошибку?
Вот мой код:
signals.py
from patient.models import Patient
from .models import ActivityLog
@receiver(pre_save, sender=Patient)
def create_new_patient(sender, instance, **kwargs):
ActivityLog.objects.create(
user=instance.created_by_user,
event='created a new patient',
patient_id=instance.patient_id
)
и используется в модуле patient.apps
:
from django.apps import AppConfig
from django.db.models.signals import pre_save
app_name = "patient"
class PatientConfig(AppConfig):
name = 'patient'
verbose_name = "Patients"
def ready(self):
from activity_logger.signals import create_new_patient
print('Patient APP is ready!')
pre_save.connect(create_new_patient, sender='patient.Patient', dispatch_uid='patient')
print Patient APP is ready!
появляется дважды, а объект создается 4 раза, несмотря на установку dispatch_uid
.Что я неправильно понял?