Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python DJANGO翻译-翻译模型包括;鼻涕虫;使用django datatrans_Python_Django_Url Routing_Multilingual - Fatal编程技术网

Python DJANGO翻译-翻译模型包括;鼻涕虫;使用django datatrans

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”应在以下任一情况下找到该对象: 当前

我正在审查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”应在以下任一情况下找到该对象:

  • 当前的_语言是FR,slug_from_url==bonjour
  • 当前的_语言是EN,slug_from_url==hello
我无法获得这种行为,相反,“get”只适用于默认语言中的“slug\u from\u url”。。。执行过程中的“当前语言”是什么

也许我走错了方向,所以欢迎任何解决方案!
提前感谢

本例中最简单的解决方案是查询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的一个非常剧烈的变化

希望这有助于