2013-03-21 68 views
0

1.作爲學習django的一部分,我嘗試使用pre_save信號將郵件發送到電子郵件ID。django使用pre_save發送郵件

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)) 

models.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領域。

這樣做的一個例子將是很大的幫助。

謝謝

+0

任何一個可以幫助我在做這個 – user2086641 2013-03-21 07:16:34

+0

是的,我正在嘗試使用pre_save信號做,post_save – user2086641 2013-03-21 07:22:40

回答

1

在Book模型下,創建信號函數。

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) 
+0

我是否不得不在views.py任何改變 – user2086641 2013-03-21 07:57:41

+0

不,當您保存或更新的自動Book model – catherine 2013-03-21 08:15:54

+0

我用上面的views.py檢查過了,你給出的新models.py代碼,它不是發送郵件。所以任何改變都必須做。如果是這樣請 – user2086641 2013-03-21 08:45:12