【问题标题】:django model translation - filter by translated fielddjango 模型翻译 - 按翻译字段过滤
【发布时间】: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


    【解决方案1】:

    使用 kwargs,

    kwargs = {}
    title_arg = 'title_%s' % language
    kwargs[title_arg] = "some title"
    
    MyModel.objects.filter(**kwargs)
    

    【讨论】:

      【解决方案2】:

      如果在您的示例中,language 是当前语言,那么这将开箱即用。见modeltranslation docs

      它的工作原理如下:如果使用翻译字段名称(title),则将其更改为当前语言字段名称(title_detitle_en,取决于当前的活动语言)。任何以语言为后缀的名称都保持不变(因此title_en 不会改变,无论当前语言是什么)。

      在给定语言没有可用翻译的情况下没有回退(参见例如this question),因此这与专门查询特定语言字段的效果相同。

      【讨论】:

        猜你喜欢
        • 2018-08-28
        • 2018-01-30
        • 2013-09-19
        • 1970-01-01
        • 2023-01-12
        • 2014-06-18
        • 1970-01-01
        • 2011-01-09
        • 1970-01-01
        相关资源
        最近更新 更多