Python DJANGO翻译-翻译模型包括;鼻涕虫;使用django datatrans
我正在审查django datatrans,以便与django localeurl并行使用它 我要做的是翻译slug,以便按如下方式访问我翻译的对象:Python DJANGO翻译-翻译模型包括;鼻涕虫;使用django datatrans,python,django,url-routing,multilingual,Python,Django,Url Routing,Multilingual,我正在审查django datatrans,以便与django localeurl并行使用它 我要做的是翻译slug,以便按如下方式访问我翻译的对象: www.mysite.com/fr/bonjour(法语) www.mysite.com/en/hello(英文) 为此,我需要“get”依赖于“当前语言” 举例说明: 如果我这样做: object=MyObject.objects.get(slug=slug\u from\u url) 然后,“get”应在以下任一情况下找到该对象: 当前
- www.mysite.com/fr/bonjour(法语)
- www.mysite.com/en/hello(英文)
- 当前的_语言是FR,slug_from_url==bonjour
- 当前的_语言是EN,slug_from_url==hello
提前感谢本例中最简单的解决方案是查询KeyValue模型
from datatrans.models import KeyValue
from datatrans.utils import get_current_language, get_default_language
digest = KeyValue.objects.get(value=slug_from_url, language=get_current_language()).digest
value = KeyValue.objects.get(digest=digest, language=get_default_language()).value
# value now contains 'hello'
myobject = MyObject.objects.get(slug=value)
这段代码本质上是将字符串翻译回其原始语言,以便您可以执行查找。我知道这些都是额外的查询,但如果您有一些缓存,这根本不会影响您的性能
为了更好地重用,您可以将其放在一些实用函数中
顺便说一句,Datatrans只设计用于转换模型的可显示内容,而不是查找字段,因为这将是Django QuerySet API的一个非常剧烈的变化
希望这有助于