Использование сигналов для создания данных в проекте Django после изменения булевой функции
У меня вопрос по поводу сигналов. У меня есть следующая модель, в которой есть булево значение по умолчанию False. Когда пользователь нажимает на кнопку, чтобы сделать его истинным, я хочу создать объекты в другой модели. Вот что я сделал, но не создавал и не вносил никаких изменений:
Вот начальная модель:
class Initial_Model(models.Model):
active = models.BooleanField(default=False)
Вот модель, для которой я хочу создать объекты, когда активный булеан Initial_Model станет True:
class ActiveSession(models.Model):
start_date = models.DateTimeField(auto_now_add=True,blank=True, null=True)
end_date = models.DateTimeField(auto_now_add=True,blank=True, null=True)
@receiver(post_save, sender=Initial_Model)
def create_session(sender, instance, **kwargs):
if Initial_Model.active == True:
ActiveSession.objects.create()
Мой вопрос, является ли это правильным способом создания экземпляров в модели. Что я делаю неправильно и как это исправить.
вы можете реализовать свой сигнал следующим образом:
@receiver(pre_save, sender=Initial_Model)
def create_session(sender, instance, **kwargs):
obj = sender.objects.get(instance.id)
if not obj.active and obj.active != instance.active
ActiveSession.objects.create()