Сигнал сохранения сообщения Django вызывается два раза с каждым запросом - PullRequest
0 голосов
/ 30 октября 2018

Я использую Django 2.x

У меня есть модель TransactionLog , в которой записывается заданная и обновленная сумма. Каждый раз, когда указывается сумма, в модели AmountGiven создается новая запись, в результате чего создается журнал с действием как с учетом , и, если ранее заданная сумма обновляется, он регистрируется с действием как обновлено .

@receiver(post_save, sender=AmountGiven)
def amount_given_post_save_receiver(sender, instance, created, **kwargs):
    if created:
        action = 'given'
    else:
        action = 'updated'

    TransactionLog.objects.create(
        user=instance.contact.user,
        contact=instance.contact,
        amount_given=instance,
        amount=instance.amount,
        action=action
    )

Но даже при создании новой записи получатель post save вызывается два или более раза. Затем одна запись сохраняется как action=given в TransactionLog , а другие создают запись action=updated в TransactionLog модели.

Как сделать его уникальным для каждого звонка?

...