2024-06-06 17:50:39 发布
网友
在Django中支持多语言url的最佳方法是什么?比如:
http://myenglishwebsite.com/user/foo http://mygermanwebsite.com/benutzer/foo
我应该在中使用multilang吗网址.py比如:
这似乎不是一个好的解决方案,我无法使其发挥作用:))
这个解决方案行不通,因为网址.py在第一个用户真正可以发出任何请求之前,文件在Django服务器中加载了一次,所以它必须是用户独立的文件(任何模块级代码都应该是用户独立的,因为它只加载一次)。在
我猜Django url resolver会在请求的中间某处进行str()强制转换,因此您可以使用一些decorator类:
(URLLangDecorator(r'^%s/(?P<slug>[-w]+)/$', ['user']), 'myapp.view.relatedaction') class URLLangDecorator: def __init__(self, url, params): self.url, self.params = url, params def __str__(self): return self.url % map(_, self.params) # Django can also preform "%" operation, so to be safe: def __mod__(self, arg): return str(self) % arg
这是猜测,所以我不确定它是否有效。在
我知道这是一个老问题,但我正在寻找类似的东西,找到了transurlvania项目。希望有帮助。在
最好的方法是对每种语言使用相同的url。不管怎样,它们都不是供最终用户阅读的。在
你有没有想过当你的url不能用ASCII表示时会发生什么?在
这个解决方案行不通,因为网址.py在第一个用户真正可以发出任何请求之前,文件在Django服务器中加载了一次,所以它必须是用户独立的文件(任何模块级代码都应该是用户独立的,因为它只加载一次)。在
我猜Django url resolver会在请求的中间某处进行str()强制转换,因此您可以使用一些decorator类:
这是猜测,所以我不确定它是否有效。在
我知道这是一个老问题,但我正在寻找类似的东西,找到了transurlvania项目。希望有帮助。在
最好的方法是对每种语言使用相同的url。不管怎样,它们都不是供最终用户阅读的。在
你有没有想过当你的url不能用ASCII表示时会发生什么?在
相关问题 更多 >
编程相关推荐