我正在使用django-transmeta
翻译字段,我需要使用这些翻译字段执行一些搜索。
假设我们有一个模型,其中包含一个名为 的可翻译字段translated_field
。
在第一种方法中,我们可以像往常一样思考一些事情,例如:
Q(translated_field__icontains="some value") # This fails, as `translated_field` field does not exist
第二种方法是硬编码所有可能的语言版本。例如:
Q(translated_field_en__icontains="some value") # English version
Q(translated_field_es__icontains="some value") # Spanish version
# Add as many as available languages
这第二个选项似乎真的是硬编码的,我想知道是否有可能的第三个选项做类似的事情:
Q(getattr("translated_field") + get_language() + "__icontains"="some value") # pseudocode
甚至更好... **kwargs 有没有使用 Q 对象的选项?
谢谢!