如何在Django中根据域名或TLD设置urlpatter?
对于某些链接,亚马逊根据其网站tld以母语显示网址.
http://www.amazon.de/bücher-buch-literatur/(de:books =>bücher)
http://www.amazon.fr/Nouveautés-paraître-Livres/(fr:books => Livres)
http://www.amazon.co.jp/和书 - ユーズドブッ - 英语学习/ (jp:books =>和书)
(链接不完整,只显示为样本.)
是否可以在urls.py中获取主机名?(请求对象在urls.py中不可用)或者可能在process_request中间件中并在urls.py中使用它(如何???)
任何替代建议如何实现这一点?
#---------- pseudocode ----------
website_tld = get_host(request).split(".")[-1]
#.fr French : Books : Livres
#.de German : Books : Bücher
if website_tld == "fr":
lang_word = "Livres"
elif website_tld == "de":
lang_word = "Bücher"
else:
lang_word = "books"
urlpatterns = patterns('',
url(r'^%s/$' % lang_word,books_view, name="books"),
)
Run Code Online (Sandbox Code Playgroud)
url模式需要基于tld构建,然后在模板中构建,<a href="{% url books %}" >{% trans "books" %}</a>以将html呈现为<a href="Bücher">Bücher</a>或<a href="Livres">Livres</a>