@Dbtzhv

Как отправлять письмо на email каждый месяц в указанную дату (поле date модели)?

class Company(models.Model):
    name = models.CharField(max_length=255)
    name_shorts = models.CharField(max_length=50, null=True)
    decision_maker_customer = models.CharField("ЛПР компании", max_length=255, null=True)
    acts_basis = models.CharField("действует на основании", max_length=255, null=True)
    contract_number = models.IntegerField("договор номер", null=True)
    contract_date = models.DateField("договор дата", null=True)
    phone = models.CharField("сотовый телефон", max_length=20, blank=True, null=True)  # Здесь вы можете выбрать подходящее максимальное значение
    email = models.EmailField("почта", blank=True, null=True)
    tg_id = models.CharField('TG ID', max_length=32, null=True, blank=True)
    date = models.PositiveIntegerField("дата отправки отчёта", validators=[MinValueValidator(0), MaxValueValidator(31)], blank=True, null=True)


    websites = models.ManyToManyField('Website', related_name='companies')
    payment_rate = models.DecimalField(max_digits=8, decimal_places=2)
    monthly_hour_limit = models.PositiveIntegerField(default=10)
    city = models.CharField(max_length=255)
    timezone = models.CharField(max_length=100)

    def get_decision_maker_customer(self):
        name_parts = self.decision_maker_customer
        #abbreviated_name = name_parts[0] + ' ' + name_parts[1][0] + '. ' + name_parts[2][0] + '.'
        abbreviated_name = name_parts
        return abbreviated_name

    def __str__(self):
        return self.name

class Website(models.Model):
    url = models.URLField()

    def __str__(self):
        return self.url


как отправлять на почту (поле email) определенное сообщение каждый месяц в указанную дату (поле date)?
  • Вопрос задан
  • 153 просмотра
Пригласить эксперта
Ответы на вопрос 1
Тебе нужно повесить регулярную задачу, которая будет запускаться раз в месяц на сервере.
Нужен брокер задач.
Почитай вот тут: https://proglib.io/p/django-celery-i-redis-gayd-po...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы