请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

TypeError at /goods/

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’

谢谢老师!!!

正在回答 回答被采纳积分+3

1回答

提问者 肖庚辰 2018-10-29 14:32:10

fieldname改成name就好使了。但是我看同学是把name该成fieldname才好使的,怎么错误的写法在我这里好使,正确的写法反而不好使了呢?

总之,出了这个提示大家轮流试试这两个参数名吧。

0 回复 有任何疑惑可以回复我~
  • bobby #1
    这个是是因为版本问题
    回复 有任何疑惑可以回复我~ 2018-10-31 13:33:36
  • 你好,请问这个fieldname是指哪个参数啊?
    回复 有任何疑惑可以回复我~ 2019-02-18 21:40:57
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号