0

1.作为学习 django 的一部分,我正在尝试使用 pre_save 信号将邮件发送到电子邮件 ID。

2.邮件应该发送到字段中提到的电子邮件ID。我没有使用信号的正确方法。这里我给出models.py和views.py。

views.py

def addbook():  


    form = BookForm

    if request.POST:
        form = BookForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            form.save()
            return redirect('/index/')
    return render_to_response('addbook.html',{ 'form':form },context_instance=RequestContext(request)) 

模型.py

class Book(models.Model):

    book_id=models.AutoField(primary_key=True,unique=True)
    book_name=models.CharField(max_length=30)
    author_name=models.CharField(max_length=30)
    publisher_name=models.CharField(max_length=40)
    email = models.EmailField()
    bookref = models.CharField(max_length=10)
    class Meta:
        db_table = u'Book'

    def __unicode__(self):
        return "%d %s %s %s %s" % (self.book_id,self.book_name, self.author_name,self.publisher_name,self.email,self.bookref)

我的要求是在提交图书详细信息时,应自动向字段中的 id 发送一封电子邮件。

一个关于这样做的例子将有很大的帮助。

谢谢

4

1 回答 1

1

在 Book models 下,创建信号函数。

class Book(models.Model):
    [..........]

def send_update(sender, instance, created, **kwargs):
    if instance.author_name:
        message = "Book is updated"
        subject = "Updates"
        send_mail(subject, message, your_email,
            [instance.email,])

post_save.connect(send_update, sender=Book)
于 2013-03-21T07:36:51.403 回答