zoukankan      html  css  js  c++  java
  • django filters TypeError __init__() got an unexpected keyword argument 'lookup_type'

    按照DRF文档 配置django_filters 筛选

    import django_filters
    from myapp.models import Product
    from myapp.serializers import ProductSerializer
    from rest_framework import generics
    
    class ProductFilter(django_filters.FilterSet):
        min_price = django_filters.NumberFilter(name="price", lookup_type='gte')
        max_price = django_filters.NumberFilter(name="price", lookup_type='lte')
        class Meta:
            model = Product
            fields = ['category', 'in_stock', 'min_price', 'max_price']
    
    class ProductList(generics.ListAPIView):
        queryset = Product.objects.all()
        serializer_class = ProductSerializer
        filter_class = ProductFilter
    

    在请求此接口时发生错误

    TypeError at /api/project-center/
    __init__() got an unexpected keyword argument 'lookup_type'
    
    

    在看了django_filters 官方文档示例后将lookup_type 更换为lookup_expr后正常。

    class ProductFilter(django_filters.FilterSet):
        price = django_filters.NumberFilter()
        price__gt = django_filters.NumberFilter(name='price', lookup_expr='gt')
        price__lt = django_filters.NumberFilter(name='price', lookup_expr='lt')
    
        release_year = django_filters.NumberFilter(name='release_date', lookup_expr='year')
        release_year__gt = django_filters.NumberFilter(name='release_date', lookup_expr='year__gt')
        release_year__lt = django_filters.NumberFilter(name='release_date', lookup_expr='year__lt')
    
        manufacturer__name = django_filters.CharFilter(lookup_expr='icontains')
    
        class Meta:
            model = Product
    
     
     
  • 相关阅读:
    金蝶软件常用基础SQL数据表
    改变cxgrid行字体颜色
    C#默认修饰符
    const和static
    怎么写动态游标
    Report Machine支持导出PDF
    C1TrueDBGrid注册码
    免费在线思维导图工具Mindv V1.1.0发布
    支持中文输入的免费的Silverlight Richtextbox
    云计算浅谈之一:云计算介绍
  • 原文地址:https://www.cnblogs.com/jeff-ideas/p/10540329.html
Copyright © 2011-2022 走看看