Django 注册新问题时如何向特定用户发送电子邮件
我想向所有教授与新问题(无论是由管理小组还是问题创建表创建的)相关主题的教师发送一封电子邮件,以便他们可以批准该问题。如何做到这一点 models.pyDjango 注册新问题时如何向特定用户发送电子邮件,django,django-views,Django,Django Views,我想向所有教授与新问题(无论是由管理小组还是问题创建表创建的)相关主题的教师发送一封电子邮件,以便他们可以批准该问题。如何做到这一点 models.py class Usuario(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE,verbose_name="Usuário") USUARIO_CHOICES = ( (UM,'Aluno'), (DO
class Usuario(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE,verbose_name="Usuário")
USUARIO_CHOICES = (
(UM,'Aluno'),
(DOIS,'Professor'),
)
tipoUsuario = models.IntegerField('Tipo de Usuário',choices=USUARIO_CHOICES,default=1)
class Questao(models.Model):
aOpcao = models.CharField(max_length=500,null=False,blank=True,verbose_name="Letra a")
bOpcao = models.CharField(max_length=500,null=False,blank=True,verbose_name="Letra b")
cOpcao = models.CharField(max_length=500,null=False,blank=True,verbose_name="Letra c")
dOpcao = models.CharField(max_length=500,null=False,blank=True,verbose_name="Letra d")
eOpcao = models.CharField(max_length=500,null=False,blank=True,verbose_name="Letra e")
设置.py
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'myemail@outlook.com'
EMAIL_HOST_PASSWORD = 'Mypassword'
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = 'MySite <myemail@outlook.com>'
forms.py
class QuestaoForm(forms.ModelForm):
aOpcao = forms.CharField(max_length=500,label="Letra a")
bOpcao = forms.CharField(max_length=500,label="Letra b")
cOpcao= forms.CharField(max_length=500,label="Letra c")
dOpcao = forms.CharField(max_length=500,label="Letra d")
eOpcao = forms.CharField(max_length=500,label="Letra e")
class Meta:
model = Questao
fields = '__all__'
请查看以下文档:
Django post save信号是在特定的DB操作之后执行代码的一种很好的方法。在您的情况下,我认为您需要创建一个post_save信号来触发电子邮件的发送。您可以连接到问题模型的post_save信号并相应地处理它,请参阅
class QuestaoForm(forms.ModelForm):
aOpcao = forms.CharField(max_length=500,label="Letra a")
bOpcao = forms.CharField(max_length=500,label="Letra b")
cOpcao= forms.CharField(max_length=500,label="Letra c")
dOpcao = forms.CharField(max_length=500,label="Letra d")
eOpcao = forms.CharField(max_length=500,label="Letra e")
class Meta:
model = Questao
fields = '__all__'