#django #django-models #django-forms #django-views #scheduled-tasks
#django #django-модели #django-формы #django-просмотры #запланированные задачи
Вопрос:
У меня есть три модели.
- CustomUser
- Webregister
- Zlink
И ниже приведен код для Zlink в models.py,
class Zlink(models.Model):
customUser = models.ForeignKey(CustomUser, on_delete=models.CASCADE) #foreignkey 1
webregister = models.ForeignKey(Webregister, on_delete=models.CASCADE) #foreignkey 2
reg_link = models.CharField(max_length=255,null=True, blank=True)
def __str__(self):
return str(self.pk)
«foreignkey 2» дает мне идентификатор события, а «foreignkey 1» дает мне адрес электронной почты пользователя.
Среди многих полей одно из полей в Webregister
является event_starts
тем, которое содержит дату и время события, когда оно начнется.
Я могу получить адрес электронной почты пользователя в событии, используя запуск запроса,
x = Zlink.objects.get(id=1)
x.customUser
Теперь, если у пользователя несколько пользователей, то как на этот адрес электронной почты отправлять электронное письмо с напоминанием до дня события?
Есть какие-либо подсказки? Я новичок в Django, пожалуйста.
Ответ №1:
Сценарий 1 (если пользовательская модель пользователя имеет только одно поле электронной почты):
x = Zlink.objects.get(id=1)
email_to_list = [x.customUser.email,]
Сценарий 2 (если пользовательская модель пользователя имеет два поля электронной почты):
x = Zlink.objects.get(id=1)
email_to_list = [x.customUser.primary_email, x.customUser.secondary_email]
Наконец, используйте следующий код для отправки почты (при условии, что у вас есть рабочие настройки smtp, определенные в settings.py )
from django.core.mail import send_mail
send_mail(
'Subject here',
'Here is the message.',
'from@example.com',
email_to_list,
fail_silently=False,
)