django 模型翻译 - 按翻译字段过滤
django model translation - filter by translated field
我需要这样查询:
MyModel.objects.filter(title_de="some title")
其中 title_de
中的 de
是动态的
我做不到:
MyModel.objects.filter('title_%s' % language = "some title")
我该怎么做?
使用 kwargs,
kwargs = {
f"title_{language}": "some title"
}
MyModel.objects.filter(**kwargs)
如果在您的示例中,language
是当前语言,那么这将开箱即用。见 modeltranslation docs:
It works as follow: if the translation field name is used (title
), it is changed into the current language field name (title_de
or title_en
, depending on the current active language). Any language-suffixed names are left untouched (so title_en
wouldn’t change, no matter what the current language is).
如果没有可用于给定语言的翻译(请参见 this question),则不会回退,因此这与专门查询特定语言的字段具有相同的效果。
我需要这样查询:
MyModel.objects.filter(title_de="some title")
其中 title_de
中的 de
是动态的
我做不到:
MyModel.objects.filter('title_%s' % language = "some title")
我该怎么做?
使用 kwargs,
kwargs = {
f"title_{language}": "some title"
}
MyModel.objects.filter(**kwargs)
如果在您的示例中,language
是当前语言,那么这将开箱即用。见 modeltranslation docs:
It works as follow: if the translation field name is used (
title
), it is changed into the current language field name (title_de
ortitle_en
, depending on the current active language). Any language-suffixed names are left untouched (sotitle_en
wouldn’t change, no matter what the current language is).
如果没有可用于给定语言的翻译(请参见 this question),则不会回退,因此这与专门查询特定语言的字段具有相同的效果。