我正在使用django-localeurl根据域后面的后缀更改项目的语言(example.com/en,example.com/hu etc)。但是,我也有与后缀完全相同的国家/地区的子域名。
如何修改locale-url或为链接添加其他过滤器,以便我可以同时更改后缀和子域?
f.e。
example.com - > hu.example.com/hu - > es.example.com/es等。
这里有localeurl chlocale函数:
def chlocale(url, locale):
"""
Changes the URL's locale prefix if the path is not locale-independent.
Otherwise removes locale prefix.
"""
_, path = utils.strip_script_prefix(url)
_, path = utils.strip_path(path)
return utils.locale_url(path, locale)
chlocale = stringfilter(chlocale)
register.filter('chlocale', chlocale)
这是我的URL href:
<a href="{{ request.path|chlocale:"hu" }}">Hungary</a>
答案 0 :(得分:0)
这个实际上只返回相对路径而不是网页的http完整地址,因此可以在{{request.path ...}}调用之前的开头附加前缀http://sitename.domain。
答案 1 :(得分:0)
domain = Site.objects.get_current()。domain
<a href="http://hu.{{ domain }}{{ request.path|chlocale:"hu" }}">Hungary</a>
有点hacky但也许你正在寻找。