私はdjangoテンプレートを使用して電子メールを作成しています。私はこのような何かを: {%のurl URL_NAMEパラメータ%}それはのように、相対URLをレンダリングします除き、正常に動作します完全なURLのためにDjangoでサーバ名を取得するにはどうすればよいですか?
:
msg_html = render_to_string('email/%s.html' % template_name, context)
msg = EmailMultiAlternatives(subject, msg_text, from_email, to_list)
msg.attach_alternative(msg_html, "text/html")
msg.content_subtype = "html"
msg.send()
マイテンプレートはそうのようなURLパターンを命名使用し /app_name/url_node/parameter
通常はこれで十分ですが、これは電子メールであるため、完全なURLにする必要があります。サーバー名の先頭には、 http://localhost:8000/app_name/url_node/parameterなどがあります。
どうすればいいですか?どのように動的にサーバー名を取得するのですか? (私は確かにそれをハードコードしたくない)。
もう1つの方法:HttpServletRequest.getContextPath()ala Javaを取得するにはどうすればよいですか?代わりにDjango/Python?
おかげ
方法についてのサイトを使用せずに?これを行う方法はありますか?モデルに頼らざるを得ないのはかなり愚かです。 – JamesD
いつでも設定ファイルに設定し、local_settingsファイルでオーバーライドすることができます – super9
http://stackoverflow.com/questions/2345708/how-can-i-get-the-full-absolute-url-withを参照してください-domin-in-django – glarrain