2012-10-31 2 views
1

새 비밀번호를 입력하라는 링크가있는 이메일을 장고 리셋 비밀번호 흐름으로 사용하고 있습니다. 이 이메일의 템플릿은 password_reset_email.html입니다. 이 템플릿을 내 프로젝트에 복사하고 사용자 정의했습니다. 그러나 ø와 같은 특수 문자는 사용할 수 없습니다. 일반적으로Django 이메일 비밀번호 재설정 흐름 : 특수 문자를 허용하지 않습니다.

ø or ø 

과 같은 엔티티를 사용하지만 작동하지 않습니다. 단지 서면으로 표시됩니다. 내가 설정을하지 않았습니다 .DEFAULT_CHARSET utf-8이어야합니다. 내가 대신 평으로 .txt로하는 템플릿을 변경 시도

email_template_name='registration/password_reset_email.html' 
... 
t = loader.get_template(email_template_name) 
... 

c = {'email': user.email, 
     ...   
     } 
send_mail("subject line", 
      t.render(Context(c)), from_email, [user.email]) 

, 그리고 탈출을 사용하여 내 평 파일에서 나는 함수 PasswordResetForm는 다음을 수행

# coding=UTF-8 

작성했습니다.

편집 : 오류 내가 얻을 수 있습니다 : 'UTF8'코덱 바이트를

편집을 디코딩 할 수 있습니다. 문제가 그것이 전혀 렌더링되지 않는다는 것을 깨달았습니다. 특별한 숯 문제가 아닙니다. 그래서 저는 그것을 새로운 질문으로 물어볼 것입니다.

+0

sooo를 익숙하지 않은,하지만 당신은 당신이 인코딩해야합니다 æøå으로 이메일을 보내려면 귀하의 메일 헤더가 올바르게. 단순히 템플릿을 표시하려고하면 æøå이 올바르게 표시됩니까? – OptimusCrime

+0

Chrome에서 템플릿을 직접 열면 ø가 올바르게 표시됩니다. 이메일을 보낼 때 헤더 정보를 포함 할 수 있습니다. 그렇다면 인코딩은 무엇이되어야합니까? 그러면 전자 메일 서식 파일에 문자를 쓰려면 어떻게해야합니까? html을 사용할 필요가 없습니다. – user984003

+0

'send_mail'은 표준 파이썬/django-function입니까? – OptimusCrime

답변

0

문제는 문자열 및 유니 코드 시퀀스를 혼합하는 것과 관련이있을 수 있습니다. 맨 위에 다음 가져 오기를 추가 유니 코드 시도를 사용하여 양식 파일에 문자열을 모두 강제로 :

from __future__ import unicode_literals 
관련 문제