【Django2.0报错】django-filter: TypeError at *** __init__() got an unexpected keyword argument 'name'

在使用 Django2.0 版本的 Django Rest Framwork 时,Django DeBug 报错

django-filter: TypeError at *** __init__() got an unexpected keyword argument 'name'

百度无效,于是查阅官方文档。 

在 官方文档  中,是这样写的

To alter strictness behavior, the appropriate view code should be overridden. More details will be provided in future docs.

Filter.name renamed to Filter.field_name (#792)

The filter name has been renamed to field_name as a way to disambiguate the filter’s attribute name on its FilterSet class from the field_name used for filtering purposes.

 所以我们代码中的 name 要改为 field_name:

    price_min = django_filters.NumberFilter(name='shop_price', lookup_expr='gte')
    price_max = django_filters.NumberFilter(name='shop_price', lookup_expr='lte')
    price_min = django_filters.NumberFilter(field_name='shop_price', lookup_expr='gte')
    price_max = django_filters.NumberFilter(field_name='shop_price', lookup_expr='lte')

再调试一下即可成功 

小结:对于部分百度不到的错误,不要害怕看官方文档,官方文档往往是最权威的。

发布了71 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/CANGYE0504/article/details/90143628