from django_filters import rest_framework as filters
from .models import Goods
class GoodsFilter(filters.FilterSet):
"""商品过滤类"""
min_price = filters.NumberFilter(field_name="shop_price", lookup_expr='gte')
max_price = filters.NumberFilter(field_name="shop_price", lookup_expr='lte')
class Meta:
model = Goods
fields = ['min_price', 'max_price']
class GoodsListViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
"""商品列表类"""
queryset = Goods.objects.all().order_by('id')
serializer_class = GoodsSerializer
pagination_class = StandardResultsSetPagination
filter_backends = (DjangoFilterBackend,)
filter_class = GoodsFilter
老师您好,过滤写完之后报错如下:
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/goods/
Django Version: 1.11.3
Python Version: 3.6.2
Installed Applications:
[‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.messages’,
‘django.contrib.staticfiles’,
‘users.apps.UsersConfig’,
‘goods.apps.GoodsConfig’,
‘trade.apps.TradeConfig’,
‘user_operation.apps.UserOperationConfig’,
‘DjangoUeditor’,
‘crispy_forms’,
‘xadmin’,
‘rest_framework’,
‘django_filters’]
Installed Middleware:
[‘django.middleware.security.SecurityMiddleware’,
‘django.contrib.sessions.middleware.SessionMiddleware’,
‘django.middleware.common.CommonMiddleware’,
‘django.middleware.csrf.CsrfViewMiddleware’,
‘django.contrib.auth.middleware.AuthenticationMiddleware’,
‘django.contrib.messages.middleware.MessageMiddleware’,
‘django.middleware.clickjacking.XFrameOptionsMiddleware’]
Traceback:
File “D:\Evns\VueShop36\lib\site-packages\django\core\handlers\exception.py” in inner
41. response = get_response(request)
File “D:\Evns\VueShop36\lib\site-packages\django\core\handlers\base.py” in _get_response
187. response = self.process_exception_by_middleware(e, request)
File “D:\Evns\VueShop36\lib\site-packages\django\core\handlers\base.py” in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File “D:\Evns\VueShop36\lib\site-packages\django\views\decorators\csrf.py” in wrapped_view
58. return view_func(*args, **kwargs)
File “D:\Evns\VueShop36\lib\site-packages\rest_framework\viewsets.py” in view
86. return self.dispatch(request, *args, **kwargs)
File “D:\Evns\VueShop36\lib\site-packages\rest_framework\views.py” in dispatch
489. response = self.handle_exception(exc)
File “D:\Evns\VueShop36\lib\site-packages\rest_framework\views.py” in handle_exception
449. self.raise_uncaught_exception(exc)
File “D:\Evns\VueShop36\lib\site-packages\rest_framework\views.py” in dispatch
486. response = handler(request, *args, **kwargs)
File “D:\Evns\VueShop36\lib\site-packages\rest_framework\mixins.py” in list
40. queryset = self.filter_queryset(self.get_queryset())
File “D:\Evns\VueShop36\lib\site-packages\rest_framework\generics.py” in filter_queryset
152. queryset = backend().filter_queryset(self.request, queryset, self)
File “D:\Evns\VueShop36\lib\site-packages\django_filters\rest_framework\backends.py” in filter_queryset
53. return filter_class(request.query_params, queryset=queryset, request=request).qs
File “D:\Evns\VueShop36\lib\site-packages\django_filters\rest_framework\filterset.py” in qs
49. return super(FilterSet, self).qs
File “D:\Evns\VueShop36\lib\site-packages\django_filters\filterset.py” in qs
200. if not self.form.is_valid():
File “D:\Evns\VueShop36\lib\site-packages\django_filters\rest_framework\filterset.py” in form
26. form = super(FilterSet, self).form
File “D:\Evns\VueShop36\lib\site-packages\django_filters\filterset.py” in form
225. for name, filter_ in six.iteritems(self.filters)])
File “D:\Evns\VueShop36\lib\site-packages\django_filters\filterset.py” in
225. for name, filter_ in six.iteritems(self.filters)])
File “D:\Evns\VueShop36\lib\site-packages\django_filters\filters.py” in field
159. **field_kwargs)
File “D:\Evns\VueShop36\lib\site-packages\django\forms\fields.py” in init
344. super(DecimalField, self).init(max_value, min_value, *args, **kwargs)
File “D:\Evns\VueShop36\lib\site-packages\django\forms\fields.py” in init
266. super(IntegerField, self).init(*args, **kwargs)
Exception Type: TypeError at /goods/
Exception Value: init() got an unexpected keyword argument ‘field_name’
谢谢老师!!!
Django REST framework课程视频,RESTFul API前后端分离开发
了解课程