Beispiel #1
0
class GoodsFilter(filters.FilterSet):
    pricemin = filters.NumberFilter(name='shop_price', lookup_expr='gte')
    pricemax = filters.NumberFilter(name='shop_price', lookup_expr='lte')

    name = filters.CharFilter(name='name', lookup_expr='icontains')
    goods_brief = filters.CharFilter(name='goods_brief',
                                     lookup_expr='icontains')
    top_category = filters.NumberFilter(method='top_category_filters')

    def top_category_filters(self, queryset, name, value):
        queryset = queryset.filter(
            Q(category__id=value) | Q(category__parent_category_id=value)
            | Q(category__parent_category__parent_category_id=value))
        return queryset

    class Meta:
        model = Goods
        fields = ['pricemin', 'pricemax', 'name']
Beispiel #2
0
class TitleFilter(filters.FilterSet):
    category = filters.CharFilter(field_name='category__slug')
    genre = filters.CharFilter(field_name='genre__slug')
    name = filters.CharFilter(field_name='name', lookup_expr='icontains')
    year = filters.NumberFilter(field_name='year')

    class Meta:
        model = Title
        fields = ('category', 'genre', 'year', 'name')
Beispiel #3
0
class ProjetoFilter(filters.FilterSet):
    nomeProj = filters.CharFilter(field_name="nome", lookup_expr='icontains')
    riscoProj = filters.CharFilter(field_name="risco", lookup_expr='icontains')
    valorProj = filters.NumberFilter(field_name="valor",
                                     lookup_expr='icontains')

    class Meta:
        model = Projeto
        fields = '__all__'
Beispiel #4
0
class EventFilter(filters.FilterSet):
    dtype = filters.NumberFilter(field_name='dtype', lookup_expr='exact')
    is_featured = filters.BooleanFilter(field_name='is_featured')
    is_featured_region = filters.BooleanFilter(field_name='is_featured_region')
    countries__in = ListFilter(field_name='countries__id')
    regions__in = ListFilter(field_name='regions__id')
    id = filters.NumberFilter(field_name='id', lookup_expr='exact')
    auto_generated_source = filters.ChoiceFilter(
        label='Auto generated source choices',
        choices=[(v, v) for v in SOURCES.values()],
    )

    class Meta:
        model = Event
        fields = {
            'disaster_start_date': ('exact', 'gt', 'gte', 'lt', 'lte'),
            'created_at': ('exact', 'gt', 'gte', 'lt', 'lte'),
        }
Beispiel #5
0
class VocabularyFilter(filters.FilterSet):
    level = filters.NumberFilter(method=filter_level_for_vocab)
    reading_contains = filters.CharFilter(method=filter_reading_contains)
    part_of_speech = filters.CharFilter(
        method=filter_vocabulary_parts_of_speech)

    class Meta:
        model = Vocabulary
        fields = "__all__"
Beispiel #6
0
class EstateFilter(drf.FilterSet):
    """自定义楼盘数据过滤器"""

    name = drf.CharFilter(lookup_expr='contains')
    dist = drf.NumberFilter(field_name='district')

    class Meta:
        model = Estate
        fields = ('name', 'dist')
Beispiel #7
0
class GoodsFilter(filters.FilterSet):
    pricemin = filters.NumberFilter(field_name='shop_price',
                                    lookup_expr='gte',
                                    help_text="最低价格")
    pricemax = filters.NumberFilter(field_name='shop_price',
                                    lookup_expr='lte',
                                    help_text="最高价格")
    top_category = filters.NumberFilter(name="category",
                                        method="top_category_filter")

    def top_category_filter(self, queryset, name, value):
        return queryset.filter(
            Q(category_id=value) | Q(category__parent_category_id=value)
            | Q(category__parent_category__parent_category_id=value))

    class Meta:
        model = Goods
        fields = ['pricemin', 'pricemax', 'is_hot', 'is_new']
Beispiel #8
0
class DriverFilter(filters.FilterSet):
    id = filters.NumberFilter(name="id", label="ID", lookup_expr="exact")
    name = filters.CharFilter(field_name='user__profile__name', lookup_expr='icontains')
    phone = filters.CharFilter(field_name='user__profile__phone', lookup_expr='exact')
    driving_licence_number = filters.CharFilter(field_name='driving_licence_number', lookup_expr='icontains')

    class Meta:
        model = Driver
        fields = ['id', ]
Beispiel #9
0
class AdvertisementFilter(filters.FilterSet):
    """Фильтры для объявлений."""

    creator = filters.NumberFilter(field_name='creator_id')
    created_at = filters.DateFromToRangeFilter()

    class Meta:
        model = Advertisement
        fields = ('creator', 'created_at',)
Beispiel #10
0
class TaxlotDataFilter(filters.FilterSet):
    year = filters.NumberFilter()
    year_range = filters.RangeFilter(name='year')
    total_value = filters.RangeFilter()
    percent_change = filters.RangeFilter()

    class Meta:
        model = TaxlotData
        fields = ('year','year_range','total_value','percent_change')
Beispiel #11
0
class BookFilter(filters.FilterSet):
    title = filters.CharFilter(lookup_expr="icontains")
    author = filters.CharFilter(lookup_expr="icontains")
    categories = filters.CharFilter(lookup_expr="icontains")
    published_date = filters.NumberFilter(lookup_expr="year")

    class Meta:
        model = Book
        fields = ("title", "author", "categories", "published_date")
class GoodsFilter(filters.FilterSet):
	#最新价格
	pricemin = filters.NumberFilter(name="shop_price", lookup_expr='gte',help_text="最小价格")
	#最大价格
	pricemax = filters.NumberFilter(name="shop_price", lookup_expr='lte',help_text="最大价格")
	#对name进行模糊查询,类似于sql里面的like语句,如果不指定lookup_expr就是完全匹配了
	name = filters.CharFilter(name="name",lookup_expr="icontains",help_text="商品名称模糊查询")
	# 支持前端新的字段过滤
	top_category = filters.NumberFilter(method="top_category_filters",help_text="首页顶部是否显示")

	#实现
	def top_category_filters(self,queryset,name,value):
		queryset = queryset.filter(Q(category__id=value)|Q(category__parent_category_id=value)|Q(category__parent_category__parent_category_id=value))
		return queryset

	class Meta:
		model = Goods
		fields = [ 'pricemin', 'pricemax',"name","is_hot","is_new"]
Beispiel #13
0
class BenchmarkFilter(filters.FilterSet):
    has_admin = filters.NumberFilter(method='has_admin_filter')

    class Meta:
        model = Benchmark
        fields = ['creator', 'has_admin']

    def has_admin_filter(self, queryset, name, value):
        return queryset.filter(admin_group__user__id__contains=value)
Beispiel #14
0
class OrderFilter(filters.FilterSet):
    created_at = filters.DateFromToRangeFilter(field_name='created_at')
    updated_at = filters.DateFromToRangeFilter(field_name='created_at')
    order_sum = filters.RangeFilter(field_name='order_sum')
    product_id = filters.NumberFilter(field_name='positions__product_id')

    class Meta:
        model = Order
        fields = ('status', 'order_sum', 'updated_at', 'created_at')
Beispiel #15
0
class PepScoringFilterSet(filters.FilterSet):
    declaration_year = filters.NumberFilter(
        field_name='declaration__year',
        min_value=2015,
        max_value=date.today().year,
    )
    pep_id = filters.NumberFilter(
        field_name='pep__id',
        min_value=1,
    )
    pep_source_id = filters.NumberFilter(
        field_name='pep__source_id',
        min_value=1,
    )

    class Meta:
        model = PepScoring
        fields = ('rule_id', )
Beispiel #16
0
class TitlesFilter(filters.FilterSet):
    name = filters.CharFilter(lookup_expr='contains', )
    year = filters.NumberFilter(field_name='year', )
    genre = filters.CharFilter(field_name='genre__slug', )
    category = filters.CharFilter(field_name='category__slug', )

    class Meta:
        model = Title
        fields = ['name', 'year', 'genre', 'category']
class GoodsFilter(filters.FilterSet):
    """
    商品的过滤类
    """
    pricemin = filters.NumberFilter(field_name="shop_price", lookup_expr='gte')
    pricemax = filters.NumberFilter(field_name="shop_price", lookup_expr='lte')
    top_category = filters.NumberFilter(field_name="category",
                                        method='top_category_filter')

    def top_category_filter(self, queryset, name, value):
        # 不管当前点击的是一级分类二级分类还是三级分类,都能找到。
        return queryset.filter(
            Q(category_id=value) | Q(category__parent_category_id=value)
            | Q(category__parent_category__parent_category_id=value))

    class Meta:
        model = Goods
        fields = ['pricemin', 'pricemax', 'is_hot', 'is_new']
Beispiel #18
0
class GoodsFilter(filters.FilterSet):
    """
    商品的过滤类
    """
    pricemin = filters.NumberFilter(name="shop_price", lookup_expr='gte',help_text ="最小价格")
    pricemax = filters.NumberFilter(name="shop_price", lookup_expr='lte',help_text ='最大价格')
    name = filters.CharFilter(name ="name",lookup_expr='contains')
    top_category = filters.NumberFilter(method='top_category_filter')
    def top_category_filter(self,queryset,name,value):
         return queryset.filter(Q(category_id =value)\
                                |Q(category__parent_category =value)\
                                |Q( category__parent_category__parent_category = value))



    class Meta:
        model = Goods
        fields = ['name', 'pricemin', 'pricemax','is_hot','is_new']
Beispiel #19
0
class BankFilter(filters.FilterSet):
    lower_interest_rate = filters.NumberFilter(field_name="interest_rates",
                                               lookup_expr='lte')

    class Meta:
        model = BankRates
        fields = [
            'loan_tenure', 'property_type', 'loan_type', 'lower_interest_rate'
        ]
Beispiel #20
0
class ToDoFilter(filters.FilterSet):
    #name = filters.CharFilter(lookup_expr='contains')
    project = filters.NumberFilter()
    create_date = filters.IsoDateTimeFromToRangeFilter(
        field_name='change_date')
    '''http://127.0.0.1:8000/api/todo/?create_date_after=2021-05-21T09:49:17&create_date_before=2021-05-21T19:49:17'''
    class Meta:
        model = ToDo
        fields = ('project', 'create_date')
Beispiel #21
0
class CountryFilterRMD(filters.FilterSet):
    region = filters.NumberFilter(field_name='region', lookup_expr='exact')

    class Meta:
        model = Country
        fields = (
            'region',
            'record_type',
        )
Beispiel #22
0
class TitleFilter(filters.FilterSet):
    genre = filters.CharFilter(field_name='genre__slug', lookup_expr='iexact')
    category = filters.CharFilter(field_name="category__slug")
    name = filters.CharFilter(field_name="name", lookup_expr="contains")
    year = filters.NumberFilter(field_name="year", lookup_expr="iexact")

    class Meta:
        model = Title
        fields = ['genre', 'category', 'name', 'year']
Beispiel #23
0
class ArticlePostFilter(drf.FilterSet):
    """自定义经理人数据过滤器"""

    title = drf.CharFilter(lookup_expr='istartswith')
    views = drf.NumberFilter(field_name='servstar', lookup_expr='gte')

    class Meta:
        model = ArticlePost
        fields = ('title', 'views')
Beispiel #24
0
class CustomFilter(filters.FilterSet):
    name = filters.CharFilter(field_name='name', lookup_expr='contains')
    category = filters.CharFilter(field_name='category__slug')
    genre = filters.CharFilter(field_name='genre__slug')
    year = filters.NumberFilter(field_name='year')

    class Meta:
        model = Titles
        fields = ['category', 'genre', 'name', 'year']
Beispiel #25
0
class SituationReportFilter(filters.FilterSet):
    event = filters.NumberFilter(name='event', lookup_expr='exact')

    class Meta:
        model = SituationReport
        fields = {
            'name': ('exact', ),
            'created_at': ('exact', 'gt', 'gte', 'lt', 'lte'),
        }
class ItineraryFilter(filters.FilterSet):
    capacity_sold__gt = filters.NumberFilter(field_name='passenger__count__gt', lookup_expr='gt', method='capacity_sold_filter')
    capacity_sold__gte = filters.NumberFilter(field_name='passenger__count__gte', lookup_expr='gte', method='capacity_sold_filter')
    capacity_sold__lt = filters.NumberFilter(field_name='passenger__count__lt', lookup_expr='lt', method='capacity_sold_filter')
    capacity_sold__lte = filters.NumberFilter(field_name='passenger__count__lte', lookup_expr='lte', method='capacity_sold_filter')

    def capacity_sold_filter(self, queryset, name, value):
        return queryset.annotate(Count('passenger')).filter(**{ name: value })

    class Meta(object):
        model = models.Itinerary
        fields = {
            'route__id': ['exact',],
            'route__name': ['exact', 'iexact', 'contains', 'icontains', 'startswith', 'istartswith', 'endswith', 'iendswith',],
            'start_time': ['exact', 'gt', 'gte', 'lt', 'lte', 'day', 'month', 'range',],
            'end_time': ['exact', 'gt', 'gte', 'lt', 'lte', 'day', 'month', 'range',],
            'bus__capacity': ['exact', 'gt', 'gte', 'lt', 'lte',],
        }
Beispiel #27
0
class GoodsFilter(filters.FilterSet):
    pricemin = filters.NumberFilter(field_name='shop_price',
                                    lookup_expr='gte',
                                    label='最低价格')
    pricemax = filters.NumberFilter(field_name='shop_price',
                                    lookup_expr='lte',
                                    label='最高价格')

    top_category = filters.NumberFilter(method='get_top_category')

    def get_top_category(self, queryset, name, value):
        return queryset.filter(
            Q(category_id=value) | Q(category__parent_category_id=value)
            | Q(category__parent_category__parent_category_id=value))

    class Meta:
        model = Goods
        fields = ['pricemin', 'pricemax', 'top_category', 'is_hot']
class SlotFilterSet(filters.FilterSet):
    computer = filters.UUIDFilter(field_name="computer__external_id")
    program = filters.UUIDFilter(field_name="computer__program__external_id")
    max_students = filters.NumberFilter(field_name="max_students",
                                        lookup_expr="lte")
    language = filters.CharFilter(field_name="language")
    is_mentor_assigned = filters.BooleanFilter(field_name="is_mentor_assigned")
    is_student_assigned = filters.BooleanFilter(
        field_name="is_student_assigned")
Beispiel #29
0
class GoodsFilter(filters.FilterSet):
    pricemin = filters.NumberFilter(field_name="shop_price",
                                    help_text='最低价格',
                                    lookup_expr='gte')
    pricemax = filters.NumberFilter(field_name="shop_price", lookup_expr='lte')
    # name = filters.CharFilter(field_name='name',lookup_expr='icontains')
    top_category = filters.NumberFilter(field_name='查询某一类别商品',
                                        method='top_category_filter')

    def top_category_filter(self, queryset, name, value):
        queryset = queryset.filter(
            Q(category_id=value) | Q(category__parent_category_id=value)
            | Q(category__parent_category__parent_category_id=value))
        return queryset

    class Meta:
        model = Goods
        fields = ['pricemin', 'pricemax', 'is_hot', 'is_new']
Beispiel #30
0
class GoodsFilter(filters.FilterSet):
    #name代表过滤的字段,lookup_expr代表过滤的条件,相当于Goods.objects.filter(shop_price__get=price_min)
    pricemin = filters.NumberFilter(name='shop_price', lookup_expr='gte')
    pricemax = filters.NumberFilter(name='shop_price', lookup_expr='lte')

    #自定义过滤方法
    top_category = filters.NumberFilter(name="category",
                                        method='top_category_filter')

    def top_category_filter(self, queryset, name, value):
        # 不管当前点击的是一级目录二级目录还是三级目录。
        return queryset.filter(
            Q(category_id=value) | Q(category__parent_category_id=value)
            | Q(category__parent_category__parent_category_id=value))

    class Meta:
        model = Goods
        fields = ['pricemin', 'pricemax', 'category']