Сигнал для пользовательской регистрации пользователей в django

помогите пожалуйста!!!

У меня есть пользовательская модель пользователя, которую я использую в своем проекте. И я создаю кошелек для моих новых пользователей с помощью сигнала, когда они регистрируются.

@receiver(post_save, sender=User)
def create_saving_wallet(sender, instance, **kwargs):
    [...]

В функции я выполняю такие основные действия, как

wallet = Wallet(user_id=user_id, wallet_type=wallet_type, amout=amount)
wallet.save()

И, у меня есть в app.py этот класс для отправки сигнала :

from django.apps import AppConfig
from django.core.signals import request_finished


class MyAppConfig(AppConfig):

    def ready(self):
        from wallet import views
        # Explicitly connect a signal handler.
        request_finished.connect(views.create_saving_wallet, dispatch_uid="azerty123")

Все работает хорошо, когда мы используем форму регистрации, но если мы используем админку сайта для входа, вызывается сигнал и затем старый кошелек обновляется.

Как я могу избежать такого поведения?

Сигнал должен вызываться только при вызове метода save() моего пользовательского пользователя. Я не уверен, но поскольку у меня есть эта ошибка, означает ли это, что когда пользователь вошел в систему, вызывается метод save()?

post_save сигнал посылается только в конце метода save()

попробуйте это обратите внимание, что в post_save есть параметр called, который будет полезен created has two values(True and False).True is when the User is first created.

@receiver(post_save, sender=User)
def create_saving_wallet(sender,instance,created,*args,**kwargs):
    if created:
       # add your code here
Вернуться на верх