Как добавить данные при создании сигнала django post_save()

Это моя модель лидов и другая модель для тепловой карты, здесь я хочу добавить новую тепловую карту, когда создается новый лид.

Lead models.py

class Lead(ModelMixin):
lead_type = models.CharField(max_length=128)
lead_status = models.CharField(max_length=128)
agent_applied = models.UUIDField()
co_broke_agent = models.UUIDField(null=True, blank=True)
sell_within_three_years = models.BooleanField(default=False)
has_200k_down = models.BooleanField(default=False)
loan_category = models.CharField(max_length=128, null=True)
loan_amount = models.FloatField(null=True)
outstanding_loan_amount = models.FloatField(null=True)
existing_bank = models.ForeignKey(Bank, related_name="leads", on_delete=models.PROTECT, null=True)
current_interest_rate = models.FloatField(null=True, blank=True)

# Add law firm here last stage.

class Meta:
    ordering = ['-created']

def __str__(self):
    return self.lead_type

Lead- Signals.py

from django.db.models.signals import post_save, pre_save
from django.dispatch import receiver
from .models import Lead
from heatmap.models import HeatMap

@receiver(post_save, sender=Lead)

def create_heatmap_for_lead(sender, instance, created, **kwargs):
if kwargs['created']:
    heatmap = HeatMap.objects.create(client=kwargs['instance'])

Heatmap - models.py

class HeatMap(ModelMixin):


heatmap = models.CharField(max_length=255, choices=HEAT_MAP)
status = models.CharField(max_length=255)
comment = models.TextField(null=True, blank=True)
followUpDate = models.DateTimeField(auto_now_add=True)

class Meta:
    ordering = ['-created']

def __str__(self):
    return str(self.status)

Heatmap- models.py

Вам нужно изменить функцию сигнала, Вы пытаетесь получить created из kwargs. созданный уже определен в параметре функции, то же самое для instance. Смотрите код для лучшего понимания:

@receiver(post_save, sender=Lead)
def create_heatmap_for_lead(sender, instance, created, **kwargs):
    if created:
        heatmap = HeatMap.objects.create(client=instance)

Но я был удивлен, что нет поля с названием client в HeatMap в модели.

Вернуться на верх