首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >django-filter order_by“无法将关键字'name‘解析为字段”

django-filter order_by“无法将关键字'name‘解析为字段”
EN

Stack Overflow用户
提问于 2014-11-28 06:34:10
回答 1查看 1.5K关注 0票数 3

使用django-filter,我有以下FilterSet:

代码语言:javascript
运行
复制
class MyFilter(django_filters.FilterSet):
    name = django_filters.CharFilter(name='full_name')

    class Meta:
        model = MyModel
        fields = ['name',]
        order_by_field = 'order'
        order_by = ('name',)

如您所见,我已经将该字段命名为full_name,以便它在表的full_name列上进行筛选。但是,一旦我将order_by设置为name,就会出现以下错误:

无法将关键字“名称”解析为字段。选择是:..。

它使用?name=Jon%20Doe进行过滤,但排序不起作用。有什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-28 06:46:17

根据通过上的文档,您必须使用模型中的字段名,而不是过滤器字段名。在您的例子中,我只使用full_name,它位于模型上:

代码语言:javascript
运行
复制
class MyFilter(django_filters.FilterSet):
    name = django_filters.CharFilter(name='full_name')

    class Meta:
        model = MyModel
        fields = ['name',]
        order_by_field = 'order'
        order_by = ('full_name',)

如果您查看代码:过滤器/过滤器#L 326-L 339,您将看到如果您声明了一个order_by字段,它会循环遍历表单字段(从模型生成),然后使用该值作为QuerySet上的order_by的参数。

如果有的话,文档应该更明确地说明这一事实。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27183185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档