【问题标题】:Django email notificationDjango 电子邮件通知
【发布时间】:2015-05-12 10:54:06
【问题描述】:

我想寻求有关如何执行此 Django 电子邮件通知的指导 https://docs.djangoproject.com/en/1.8/topics/email/#send-mail

我有一个基本的任务表单和分配给某人的选项,保存表单后我想向分配的用户发送电子邮件通知。

工作/任务模型.py

class Job(models.Model):
    completed = models.BooleanField(default=False)
    task_name = models.CharField(max_length=80, blank=False)
    description = models.CharField(max_length=80, blank=False)
    is_important = models.BooleanField(default=False)
    completion_date = models.DateField(blank=True, null=True)
    assign_to = models.ForeignKey(User, blank=True, null=True)
    comments = models.TextField(blank=True)

    def __unicode__(self):
        return self.task_name

作业/任务视图.py

@login_required
def job(request):

    if request.method == 'POST':

        form = JobForm(request.POST)

        if form.is_valid():
            job_record = form.save(commit=False)
            job_record = form.save(commit=False)
            job_record.user = request.user
            job_record.save()
            return redirect('jobs:list')
    else:
        form = JobForm()

    return render(request, 'jobs/form.html', {'form': form})

【问题讨论】:

  • 好的,你有什么问题?您在那里有保存电话,以及有关如何发送电子邮件的文档,那么您在哪里遇到问题?
  • 我对 python 和 django 很陌生,问题是我不知道如何以及从哪里开始,这就是我寻求指导/帮助/解释的原因。
  • 你配置了 settings.py 吗?您可能会发现这很有用:youtube.com/watch?v=51mmqf5a0Ss
  • 但是你不需要开始:大部分代码已经在那里了。真的很难知道你的麻烦在哪里。是什么阻止您在job_record.save() 之后简单地拨打send_mail
  • 是的,我知道了,谢谢,但是我如何获得分配任务的用户的电子邮件?

标签: python django email-notifications


【解决方案1】:

你快到了:

@login_required
def job(request):

    form = JobForm(request.POST or None)

    if form.is_valid():
        job_record = form.save(commit=False)
        job_record.assign_to = request.user
        job_record.save()
        send_mail(
            subject="subject",
            message="message",
            from_email="from@myserver.com",
            recipient_list=[job_record.assign_to.email]
        )
        return redirect('jobs:list')

    return render(request, 'jobs/form.html', {'form': form})

【讨论】:

  • 您可以在文档中找到Django's user model 的详细信息,其余的在您自己的代码中。探索不熟悉对象的一种好方法是 pip install ipython 然后使用 Django 的 ./manage.py shell 命令打开 ipython 控制台并尝试实例化模型并查看可用的方法和属性
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-16
  • 2015-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多