【问题标题】:User information in a model post_save email模型 post_save 电子邮件中的用户信息
【发布时间】:2019-11-30 14:04:35
【问题描述】:

我有一个模型,每次编辑这个模型时我都会发送一封电子邮件,使用 post_save,很好!

我可以从我的模型中恢复字段以在电子邮件中显示它们,很好。

但我会显示有关已连接、登录的用户的信息(用户名...)。 我尝试了一些语法,但没有成功,请您帮帮我吗?

在model.py中,在我的模型相关的末尾:

@receiver(post_save, sender=User)
def save(self, **kwargs):
    text = 'Hello\n%s %s has just been edited.' % (self.first_name, self.last_name)
    my_from = 'webmaster@hg-map.fr'
    my_subject = 'Prospect Edit (from test instance, home)'

    email = EmailMessage(my_subject, text, my_from, to=['xxx@xxx.fr'])
    email.send()

【问题讨论】:

  • 哎呀...这很奇怪。好像您已将 instance method 连接到信号。你的post_save 信号有效吗?
  • 您好,是的,它可以正常工作。为什么?你看到一些奇怪的编码吗?请告诉我
  • 嗯......终于你说对了。它运行良好,直到...我重新启动服务器...

标签: django


【解决方案1】:

是的,现在我这样做了,在 models.py 的底部:

@receiver(post_save, sender=MyModelRelated)
def save(sender, instance, **kwargs):
    text1 = 'Hello\n%s %s has just been edited.' % (instance.first_name, instance.last_name)
    form_admin_url = 'Admin form: https://xxx.fr/admin/prospect/prospect/'+str(instance.id)+'/change/'
    footer = 'This message was sent automatically, do not answer.'
    my_from = 'webmaster@xxx.fr'
    my_subject = 'Prospect Edited (%s %s)' % (instance.first_name, instance.last_name)

    email = EmailMessage(my_subject, text1+'\n'+form_admin_url+'\n'+footer, my_from, to=['geo@xxx.fr'])
    email.send()

【讨论】:

    猜你喜欢
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 2011-09-29
    • 2012-01-09
    • 2021-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多