Сигнал для пользовательской регистрации пользователей в 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