2011-08-03 15 views
0

私はDjangoで確認メールを送信しようとしましたが、エクステンション文字に問題があります。操作中のPython%文字の問題(エスケープ文字の問題)

私は

def getActivationMailBody(): 
    email_body = "<table width='100%'> 
    email_body = email_body + '<p>' + '%(confirmLink)s' + '</p>' 
    return email_body 

としてメールの内容のためのヘルパー機能を持っており、confirmLinkは私が

unsupported format character ''' (0x27) at index 18 
としてエラーが出る埋め込むながら確認URLが、しかし

email_body = getActivationMailBody() 
email_body = email_body % {'confirmLink': '%s/kullanici/onay/%s/%s'%(WEB_URL,md5.new(form.cleaned_data['email']).hexdigest()[:30], activation_key)} 
msg = EmailMessage(email_subject, email_body, DEFAULT_FROM_EMAIL, [email_to]) 
msg.content_subtype="html" 
res = msg.send(fail_silently=False) 

のように埋め込まれています

この問題の原因は、%文字だけど、どうやったらそれを修正できるのか分からなかった。

私に何か提案してもらえますか? getActivationEmailBodyは、電子メールの本文を返すが、その代わりにされていないので、それは、あなたがこれを構築してきたどのように少し奇妙だ

email_body = "<table width='100%%'>" 

を:ありがとうフォーマット文字列で

答えて

3

は、%は倍増でエスケープすることができます本文を作成する書式文字列。関数の名前を変更することもできます。