django-signal send email with instance data doesn't work

162 Views Asked by At

Good Day I have model with signal:

class ParticipantModel(models.Model):

TYPE_USER = (
    ('O', 'Онлайн трансляция'),
    ('P', 'Персональное присутствие'),
)
name = models.CharField( max_length=256, verbose_name='Имя')
surname = models.CharField(max_length=50, verbose_name='Фамилия')
position = models.CharField(max_length=50, verbose_name='Должность')
company = models.CharField(max_length=50, verbose_name='Название компании')
city = models.CharField(max_length=50, verbose_name='Город')
email = models.EmailField(verbose_name='Электро почта')
phone = models.CharField(max_length="50", verbose_name="Телефон")
phonem = models.CharField(max_length="50", verbose_name="Мобильный телефон")
www = models.URLField(verbose_name="Сайт")
tuser = models.CharField(max_length='250', choices=TYPE_USER, verbose_name="Форма вашего участия")


class Meta:
    verbose_name = ('Участник')
    verbose_name_plural = ('Участники')


def send_marketing(sender, instance, created, **kwargs):
if created:
    part_dict = {'Имя': instance.name, 'Фамилия': instance.surname, 'Компания': instance.company}
    message = render_to_string('email/newparticipant.txt', part_dict)
    subject = "Новый участник зарегистрирован"
    from_email = '[email protected]'
    recipient_list = ('[email protected]', '[email protected]')
    send_mail(subject, message, from_email, recipient_list)
post_save.connect(send_marketing, sender=ParticipantModel)

Also I have in my templates folder empty newparticipant.txt. How to give part_dict to participant.txt. The main idea is according to signal post_save(), send email to my email data from instance.

0

There are 0 best solutions below