gpt4 book ai didi

python - 如何根据通过 Django 生成的新主键发送电子邮件?

转载 作者:行者123 更新时间:2023-11-28 21:58:39 25 4
gpt4 key购买 nike

每当在 Django 中生成新的主键时,我想向用户发送一封电子邮件。我在 Models.py 中的代码:

class PurchaseOrder(models.Model):
product = models.CharField(max_length=256)
vendor = models.CharField(max_length=256)
dollar_amount = models.FloatField()
item_number = models.AutoField(primary_key=True)

我已将其编码为每次刷新页面时都可以发送电子邮件的位置

email = EmailMessage('Purchase Order System', 'your message here', to=['youremail@gmail.com'])
email.send()

但我怎样才能做到每次生成新的主键时都发送一封电子邮件?

最佳答案

使用django signals .

from django.db.models import signals

def send_email_on_new_order(instance, created, raw, **kwargs):
# Fixtures or updates are not interesting.
if not created or raw:
return

# `instance` is your PurchaseOrder instance.
email = EmailMessage('Purchase Order System', 'your message here', to=['youremail@gmail.com'])
email.send()

signals.post_save.connect(send_email_on_new_order, sender=PurchaseOrder, dispatch_uid='send_email_on_new_order')

您必须将此代码粘贴到加载 django 期间将执行的位置,例如模型.py

示例 models.py:

from django.core.mail import EmailMessage
from django.db import models
from django.db.models import signals

class PurchaseOrder(models.Model):
product = models.CharField(max_length=256)
vendor = models.CharField(max_length=256)
dollar_amount = models.FloatField()
item_number = models.AutoField(primary_key=True)

def send_email_on_new_order(instance, created, raw, **kwargs):
# Fixtures or updates are not interesting.
if not created or raw:
return

# `instance` is your PurchaseOrder instance.
email = EmailMessage('Purchase Order System', 'your message here', to=['youremail@gmail.com'])
email.send()

signals.post_save.connect(send_email_on_new_order, sender=PurchaseOrder, dispatch_uid='send_email_on_new_order')

关于python - 如何根据通过 Django 生成的新主键发送电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17842808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com