2012-10-31 35 views
1

我使用Django的重置它發送電子郵件給用戶提供了一個鏈接,輸入新的密碼口令流將不接受特殊字符。此電子郵件的模板是password_reset_email.html。我已將此模板複製到我自己的項目中並進行了自定義。但是,我無法使用特殊字符,例如ø。通常情況下,我使用Django的電子郵件密碼重置流程:

ø or ø 

這樣的實體,但它們不起作用 - 它們只是直接以書面形式顯示。我沒有設置settings.DEFAULT_CHARSET,所以它應該是utf-8。在我的.py文件我已經寫

# coding=UTF-8 

功能PasswordResetForm執行以下操作:

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

我試圖改變模板爲.txt代替的.py,並使用逃生。

編輯:錯誤,我得到的是:「UTF-8」編解碼器不能解碼字節

編輯。我意識到問題在於它根本不是渲染。這不僅僅是一個特殊的字符問題。所以,我會問這是一個新問題。

+0

不SOOO熟悉Python,但如果你想送與æøå必須編碼電子郵件您的郵件標題正確。如果您嘗試簡單地顯示模板,是否顯示正確? – OptimusCrime

+0

如果我在Chrome中直接打開模板,則ø顯示正確。看起來我可以在發送電子郵件時包含標題信息。但是編碼應該是什麼,然後如何在電子郵件模板中編寫字符?我不必使用HTML。 – user984003

+0

是'send_mail'標準的Python/Django的功能? – OptimusCrime

回答

0

你的問題可能是與混合字符串和Unicode序列。要強制所有的字符串在表單文件中使用unicode嘗試在頂部添加以下導入:

from __future__ import unicode_literals 
相關問題