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),则不会回退,因此这与专门查询特定语言的字段具有相同的效果。