繁体   English   中英

如何发送在 django 中创建的新模型对象

[英]How can I send for new model object create in django

如果用户做了某事,我想发送电子邮件,并且由于他的操作,在数据库中进行了一些条目。 我想从我的 models.py 中执行发送电子邮件功能。 可能吗??

是的,当在数据库中执行某些操作时,您可以通过多种方式发送邮件。 您可以使用 Django 的信号 post_save 功能。 使用信号,您可以向您的用户发送电子邮件,而无需在您的代码/视图中进行任何其他编辑。

from django.db.models.signals import pre_save
from django.dispatch import receiver
from django.core.mail import EmailMessage
@receiver(pre_save, sender=MyModel) # here MyModel is name of your model
def send_email(sender, instance, **kwargs):
   email = EmailMessage('your title', 'body', to=[email])
   email.send()

    # your code to send email
    ...

您还必须在 settings.py 文件中包含您的电子邮件设置。 我也在这里给那些。

EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'Your email id'
EMAIL_HOST_PASSWORD = 'your password'
EMAIL_PORT = 587

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM