2013-03-19 2 views
0

내 프로젝트에서 이메일 ID 필드를 사용할 수 있습니다.django를 사용하여 이메일 보내기

작성자 이메일 ID를 수집하고 데이터베이스의 세부 정보를 업데이트하는 동안 전자 메일은 해당 특정 전자 메일 ID로 책 이름이 업데이트되었다고 알려야합니다.

내 views.py이

데프 addbook (요청)입니다 : 나는 그것을 수행하려면이 send_mail() 메소드를 사용하고 있지만 내가 예상대로 작동하지 않는

log.debug("test....") 

form = BookForm 

if request.POST: 
    form = BookForm(request.POST) 
    if form.is_valid(): 
     cd = form.cleaned_data 
     send_mail(cd['book_name'],cd['author_name'],cd.get(''),['[email protected]'],) 
     form.save() 
     return redirect('/index/') 
return render_to_response('addbook.html',{ 'form':form },context_instance=RequestContext(request)) 

.

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) 

forms.py

class BookForm(ModelForm): 

    log.debug("test....") 

    class Meta: 
     model = Book 

     fields=['book_id','book_name','author_name','publisher_name','email','bookref'] 

는 메일이 이메일 필드에 언급 된 이메일 ID로 보내야합니다 :

models.py는

클래스 도서 (models.Model)입니다 .

감사

+1

은 가지고 당신은'EMAIL_HOST','EMAIL_PORT','EMAIL_HOST_USER'와'EMAIL_HOST_PASSWORD' 정의 당신의'settings.py'에? 또한'cd [ 'book_name']','cd [ 'author_name']'및'cd.get ('')'을 출력하고 적절한 값을 얻는 지 확인하십시오. – arulmr

+0

"예상대로 작동하지 않습니다."- 어떻게 작동합니까? –

+0

값을 받고 있지만 하드 코딩 된 이메일 ID로 메일을 보내고 있습니다. 필드에서 캡처 한 이메일 ID로 보내야합니다. 도움이 수락되었습니다. – user2086641

답변

4

settings.py

EMAIL_USE_TLS = True 
EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_PORT = 587 
EMAIL_HOST_USER = 'user' 
EMAIL_HOST_PASSWORD = 'password' 
DEFAULT_FROM_EMAIL = 'your email' 

views.py

if request.POST: 
    form = BookForm(request.POST) 
    if form.is_valid(): 
     cd = form.cleaned_data 

     email_to = cd['email'] 
     subject = "{0} Update".format(
      cd['book_name']) 
     message = "Author: {0}\n\n Your book name is updated".format(
      cd['author_name']) 
     send_mail(subject, message, settings.DEFAULT_FROM_EMAIL,[email_to,]) 

     form.save() 
     return redirect('/index/') 
+0

settings.py에서 세그먼트를 편집해야합니다. 의심스러운 부분은 로깅 설정에서해야합니다. – user2086641

+0

무언가를 편집 할 필요가 없습니다. 이메일의 설정을 추가하십시오. – catherine

+0

"전역 이름 '설정이'정의되지 않았습니다 '라는 오류가 발생하여 send_mail() 행을 가리키고 있습니다. 가져올 헤더 파일 또는 가져올 파일 – user2086641

관련 문제