我有一个django_filter FilterSet
,其中包含一个OrderingFilter
,如下所示:
from django.utils.translation import get_language
import django_filters
class geographicEntityFilter(django_filters.FilterSet):
ordering = django_filters.OrderingFilter(
fields = (
('displayedNames__' + get_language()[0:2],'name'),
)
)
我将该过滤器与基于类的视图一起使用:
class GeographicEntityListView(FilterView):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
f = geographicEntityFilter(self.request.GET, queryset=self.get_queryset())
...
我要做的是根据用户当前选择的语言来设置字段名称。无论网站使用哪种语言,get_language()
方法始终返回“ en”。我假设我需要通过request
访问该语言,但是我找不到关于它的任何文档。
与其他FilterSets
一起在我代码的其他部分使用,例如当我为ModelChoiceFilter
的QuerySet定义可调用对象时,其中request
可用。
但是根据文档,fields
参数“接受“二元组列表”语法...字段也可能只是字符串的迭代”。没有提及可通话对象。
因此,感谢您的帮助。