【发布时间】:2015-06-03 15:45:43
【问题描述】:
我需要这样查询:
MyModel.objects.filter(title_de="some title")
title_de 中的 de 是动态的
我做不到:
MyModel.objects.filter('title_%s' % language = "some title")
我该怎么做?
【问题讨论】:
标签: python django django-modeltranslation
我需要这样查询:
MyModel.objects.filter(title_de="some title")
title_de 中的 de 是动态的
我做不到:
MyModel.objects.filter('title_%s' % language = "some title")
我该怎么做?
【问题讨论】:
标签: python django django-modeltranslation
使用 kwargs,
kwargs = {}
title_arg = 'title_%s' % language
kwargs[title_arg] = "some title"
MyModel.objects.filter(**kwargs)
【讨论】:
如果在您的示例中,language 是当前语言,那么这将开箱即用。见modeltranslation docs:
它的工作原理如下:如果使用翻译字段名称(
title),则将其更改为当前语言字段名称(title_de或title_en,取决于当前的活动语言)。任何以语言为后缀的名称都保持不变(因此title_en不会改变,无论当前语言是什么)。
在给定语言没有可用翻译的情况下没有回退(参见例如this question),因此这与专门查询特定语言字段的效果相同。
【讨论】: