Как добавить данные при создании сигнала 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в модели.