django过滤翻译的字段

时间:2016-05-10 09:03:37

标签: django

我正在使用django-filter并拥有4种语言的项目。我过滤的模型字段被modeltranslation翻译成4种不同的语言。问题是,我无法使用所有语言进行过滤。仅适用于默认语言。过滤代码:

enums = attribute.enum_group.enums.all()
choices = [('', '-')] + [(x.value, x.value) for i, x in enumerate(enums)]
lookup = 'variants__eav_values__value_enum__value'
#value_enum__value is translated to 4 languages
self.filters[attribute.slug] = django_filters.ChoiceFilter(
                                                label=attribute.name,
                                                name=lookup,
                                                choices=choices
                                                )

所以基本上这会创建下拉过滤器并用选项填充它。 name=lookupSomeProduct.objects.filter(variants__eav_values__value_enum__values='someval')相同。  现在正如我所说的那样,默认情况下工作正常,英语。如果我切换到其他语言,过滤不起作用。我认为由于某种原因它不会改变当前的语言。此外,如果我硬编码语言,lookup = 'variants__eav_values__value_enum__value_ru'它将起作用。但这是愚蠢的解决方案。有没有办法让这项工作变得更好?

0 个答案:

没有答案