【问题标题】:django-modeltranslation : how to know if the value is defined in a given language?django-modeltranslation:如何知道值是否以给定语言定义?
【发布时间】:2013-01-04 20:01:00
【问题描述】:

我正在使用django-modeltranslation 翻译我的内容。

如果没有为语言设置翻译字段的值,则它会自动采用默认语言的值。

但是,有没有办法知道给定语言的值是否已设置?

例如,如果 title_fr 未设置,obj.title_fr 将返回 obj.title 的值。 如何知道是否定义了法语版本?

【问题讨论】:

    标签: python django django-modeltranslation


    【解决方案1】:

    您可以使用instance.__dict__['title_fr'] 访问原始字段值。

    但是,您可能想要自定义 fallback_values 选项:

    https://django-modeltranslation.readthedocs.org/en/latest/usage.html#fallback-values

    【讨论】:

    • getattr(instance, 'title_fr') 也可以使用!事实上,我遇到了这个问题,因为翻译的字段是 AutoSlugField (django_extensions)
    • 感谢关于 fallback-values 的指针,但我不确定它是否符合这种需要。好像可以用来获取翻译字段的默认值
    • fallback_values = {'title': None} 将使模型翻译返回法语标题,或者为 title 使用法语返回 None。这可能是你想要的。我没有尝试,但认为它应该可以工作。
    猜你喜欢
    • 2016-02-04
    • 2016-03-23
    • 2017-12-04
    • 2013-09-03
    • 1970-01-01
    • 2020-03-23
    • 1970-01-01
    • 2013-12-03
    • 2023-03-25
    相关资源
    最近更新 更多