class ZamowieniaFilter(FilterSet): min_price = NumberFilter(field_name='Cena', lookup_expr='gte') max_price = NumberFilter(field_name='Cena', lookup_expr='lte') class Meta: model = Zamowienia fields = ['min_price', 'max_price']
class GoodsFilter(FilterSet): """ 商品过滤类 """ price_min = NumberFilter(field_name='shop_price', help_text='最低价格', lookup_expr='gte') price_max = NumberFilter(field_name='shop_price', help_text='最高价格', lookup_expr='lte') # 商品一级分类,传入一级分类的ID top_category = NumberFilter(field_name='category', method='top_category_filter', help_text='一級分類') 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 = ['price_min', 'price_max', 'top_category', 'is_hot', 'is_new']
class StockFilter(FilterSet): min_stock = NumberFilter(name='quantity', lookup_expr='gte') max_stock = NumberFilter(name='quantity', lookup_expr='lte') class Meta: model = StockItem fields = ['quantity', 'part', 'location']
class OrderFilter(FilterSet): customer = NumberFilter(field_name="project__customer") acknowledged = NumberFilter(field_name="acknowledged") class Meta: model = models.Order fields = ("customer", "project", "acknowledged")
class CompetitionFilter(FilterSet): from_achievement_date = DateTimeFilter( name='distance_achievement_date', lookup_expr='gte') to_achievement_date = DateTimeFilter( name='distance_achievement_date', lookup_expr='lte') min_distance_in_feet = NumberFilter( name='distance_in_feet', lookup_expr='gte') max_distance_in_feet = NumberFilter( name='distance_in_feet', lookup_expr='lte') drone_name = AllValuesFilter( name='drone__name') pilot_name = AllValuesFilter( name='pilot__name') class Meta: model = Competition fields = ( 'distance_in_feet', 'from_achievement_date', 'to_achievement_date', 'min_distance_in_feet', 'max_distance_in_feet', 'drone_name', 'pilot_name', )
class ExpenseListFilter(FilterSet): #this filter is used to filter any substring in the name of the expense name__cont = CharFilter(field_name='name', lookup_expr='icontains') #this filter is used to filter expenses which are greater than equal to the given amount amount__gt = NumberFilter(field_name='amount', lookup_expr='gte') #this filter is used to filter expenses which are greater than equal to the given amount amount__lt = NumberFilter(field_name='amount', lookup_expr='lt') #this filter is used to filter expenses which have been created after the given date created__gt = DateTimeFilter(field_name='created', lookup_expr='gte') #this filter is used to filter expenses which have been created before the given date created__lt = DateTimeFilter(field_name='created', lookup_expr='lt') #this filter is used to filter expenses based on image attached or not image__exists = ChoiceFilter(method=filter_not_empty, choices=ADDRESSED_CHOICES, label='Status', field_name='image') class Meta: model = Expense fields = ('name', 'amount','created', 'image__exists') order_by = ['pk']
class StockFilter(django_filters.FilterSet): length = NumberFilter(lookup_expr='gte') width = NumberFilter(lookup_expr='gte') class Meta: model = Stock fields = '__all__'
class FiltersFilter(FilterSet): entry_id = NumberFilter(method='filter_entry_id') entry_id__in = CharFilter(method='filter_entry_id_in') indicator_id = NumberFilter(method='filter_indicator_id') indicator_id__in = CharFilter(method='filter_indicator_id_in') class Meta: model = Filters fields = { 'name': ['exact', 'icontains', 'istartswith'], 'description': ['exact', 'icontains', 'istartswith'], 'metadata': ['exact', 'in'], 'indicator__name': ['exact', 'in'], 'heading__id': ['exact', 'in'], 'heading__name': ['exact', 'in'] } def filter_entry_id(self, queryset, name, value): name = 'id' return queryset.filter(**{name: value}) def filter_entry_id_in(self, queryset, name, value): name = 'id__in' return queryset.filter(**{name: eval(value)}) def filter_indicator_id(self, queryset, name, value): name = 'indicator__id' return queryset.filter(**{name: value}) def filter_indicator_id_in(self, queryset, name, value): name = 'indicator__id__in' return queryset.filter(**{name: eval(value)})
class DocumentFilter(FilterSet): state = MultipleCharFilter(name='state', lookup_type='iexact') number = NumberFilter(name='number', lookup_type='iexact') customer = NumberFilter(name='customer__pk', lookup_type='iexact') customer_name = CharFilter(name='customer__name', lookup_type='icontains') customer_company = CharFilter(name='customer__company', lookup_type='icontains') provider_name = CharFilter(name='provider__name', lookup_type='icontains') provider_company = CharFilter(name='provider__company', lookup_type='icontains') issue_date = DateFilter(name='issue_date', lookup_type='iexact') due_date = DateFilter(name='due_date', lookup_type='iexact') paid_date = DateFilter(name='due_date', lookup_type='iexact') cancel_date = DateFilter(name='cancel_date', lookup_type='iexact') currency = MultipleCharFilter(name='currency', lookup_type='icontains') sales_tax_name = MultipleCharFilter(name='sales_tax_name', lookup_type='icontains') class Meta: model = Document fields = [ 'state', 'number', 'customer_name', 'customer_company', 'provider_name', 'provider_company', 'issue_date', 'due_date', 'paid_date', 'cancel_date', 'currency', 'sales_tax_name' ]
class DataFilter(FilterSet): min_case = NumberFilter(name='case_num', lookup_expr='gte') max_case = NumberFilter(name='case_num', lookup_expr='lt') class Meta: model = DataCollection fields = ['min_case', 'max_case']
class UQJFilterSet(FilterSet): question_event = NumberFilter(field_name='question__event') question = NumberFilter(field_name='question') class Meta: model = UserQuestionJunction fields = ['question', 'question_event']
class OrderFilter(FilterSet): customer = NumberFilter(name='project__customer') acknowledged = NumberFilter(field_name='acknowledged') class Meta: model = models.Order fields = ('customer', 'project', 'acknowledged')
class SearchFilter(Filterset): registNo = NumberFilter(name='registNo') siteDomain = NumberFilter(name='siteDomain') class Meta: model = Post fields = ['registNo', 'siteDomain']
class BranchFilter(FilterSet): branch = CharFilter( label=_('Branch'), method='branch_filter', ) client = CharFilter( label=_('Client'), field_name='client__name', lookup_expr='icontains', ) number_of_orders__gte = NumberFilter( label=_('Estimates from'), field_name='number_of_orders', lookup_expr='gte', ) number_of_orders__lte = NumberFilter( label=_('Estimates to'), field_name='number_of_orders', lookup_expr='lte', ) class Meta: model = Branch fields = [] def branch_filter(self, queryset, name, value): return queryset.filter( Q(name__icontains=value) | Q(settlement__icontains=value) | Q(address__icontains=value) )
class ArticleFilter(FilterSet): quantity__gt = NumberFilter(name='quantity', lookup_expr='gt', label=_('quantity greater than')) purchasing_price__gt = NumberFilter(name='purchasing_price', lookup_expr='gt', label=_('greater than')) selling_price__gt = NumberFilter(name='selling_price', lookup_expr='gt', label=_('greater than')) losses = NumberFilter(label=_('Losses greater or equal'), lookup_expr='gte') class Meta: model = Article fields = { 'branch__name': ['icontains'], 'name': ['icontains'], 'category__name': ['icontains'], 'id': ['exact'], 'quantity': ['exact'], 'solde': ['exact'], 'arrival__nom': ['icontains'], }
class MyUsersFilter(FilterSet): from_birth_date = DateTimeFilter( field_name = 'profile__date_of_birth', lookup_expr = 'gte' ) to_birth_date = DateTimeFilter( field_name = 'profile__date_of_birth', lookup_expr = 'lte' ) max_age = NumberFilter( field_name = 'profile__age', lookup_expr = 'lte' ) min_age = NumberFilter( field_name = 'profile__age', lookup_expr = 'gte' ) class Meta: model = MyUser fields = ( 'from_birth_date', 'to_birth_date', 'max_age', 'min_age', 'is_superuser' )
class ProductFilter(FilterSet): title = CharFilter(field_name='title', lookup_expr='icontains', distinct=True) category = CharFilter(field_name='categories__title', lookup_expr='icontains', distinct=True) category_id = CharFilter(field_name='categories__id', lookup_expr='icontains', distinct=True) min_price = NumberFilter(field_name='variation__price', lookup_expr='gte', distinct=True) # (some_price__gte=somequery) max_price = NumberFilter(field_name='variation__price', lookup_expr='lte', distinct=True) class Meta: model = Product fields = [ 'min_price', 'max_price', 'category', 'title', 'description', ]
class ActivityFilterGeneric(django_filters.FilterSet): child_age_young = NumberFilter(field_name='age_group_young', lookup_expr="lte", label="Activities this age and up") child_age_old = NumberFilter(field_name="age_group_old", lookup_expr="gte", label = "Activities for this age and below") class Meta: model = Activities fields = "__all__"
class ObrasUsuariosFilterSet(FilterSet): id_obra = NumberFilter(field_name='obra__id') id_usuario = NumberFilter(field_name='usuario__id') obra_pedido = NumberFilter(field_name='obra__pedido') obra_data_lancamento__gte = DateFilter(field_name='obra__data_lancamento', lookup_expr='gte') obra_data_lancamento__lte = DateFilter(field_name='obra__data_lancamento', lookup_expr='lte') obra_data_inicio__gte = DateFilter(field_name='obra__data_inicio', lookup_expr='gte') obra_data_inicio__lte = DateFilter(field_name='obra__data_inicio', lookup_expr='lte') obra_data_final__gte = DateFilter(field_name='obra__data_final', lookup_expr='gte') obra_data_final__lte = DateFilter(field_name='obra__data_final', lookup_expr='lte') usuario_cpf = CharFilter(field_name='usuario__cpf') usuario_matricula = NumberFilter(field_name='usuario__matricula') encarregado = BooleanFilter(field_name='encarregado') class Meta: model = ObrasUsuarios fields = ('id', 'encarregado')
class PlayerScoreFilter(filters.FilterSet): min_score = NumberFilter( name='score',lookup_expr='gte' ) max_score = NumberFilter( name='score',lookup_expr='lte' ) from_score_date = DateTimeFilter( name='score_date', lookup_expr='gte' ) to_score_date = DateTimeFilter( name='score_date', lookup_expr='lte' ) player_name = AllValuesFilter( name='player__name' ) game_name = AllValuesFilter( name= 'game__name' ) class Meta: model = PlayerScore fields = ( 'score', 'from_score_date', 'to_score_date', 'min_score', 'max_score', # player__name will be accessed as player_name 'player_name', #game__name will be accessed as game_name 'game_name' )
class ProductFilter(django_filters.FilterSet): name = CharFilter(field_name='name', lookup_expr='icontains') material = CharFilter(field_name='material', lookup_expr='icontains') cost_price_gte = CharFilter(field_name="cost_price", lookup_expr="gte") cost_price_lte = CharFilter(field_name="cost_price", lookup_expr="lte") sell_price_gte = CharFilter(field_name="sell_price", lookup_expr="gte") sell_price_lte = CharFilter(field_name="sell_price", lookup_expr="lte") units_gte = NumberFilter(field_name="units", lookup_expr="gte") units_lte = NumberFilter(field_name="units", lookup_expr="lte") def __init__(self, *args, **kwargs): super(ProductFilter, self).__init__(*args, **kwargs) self.filters['name'].label = "Nombre" self.filters['category'].label = "Categoría" self.filters['size'].label = "Tamaño" self.filters['material'].label = "Material" self.filters['cost_price_gte'].label = "Coste mayor o igual que" self.filters['cost_price_lte'].label = "Coste menor o igual que" self.filters[ 'sell_price_gte'].label = "Precio de venta mayor o igual que" self.filters[ 'sell_price_lte'].label = "Precio de venta menor o igual que" self.filters['units_gte'].label = "Nº de unidades mayor o igual que" self.filters['units_lte'].label = "Nº de unidades menor o igual que" class Meta: model = Product fields = '__all__' exclude = [ 'product_pic', 'date_created', 'description', 'cost_price', 'sell_price', 'units' ]
class PlayerScoreFilter(FilterSet): min_score = NumberFilter( name='score', lookup_expr='gte', ) max_score = NumberFilter( name='score', lookup_expr='lte' ) from_score_date = DateTimeFilter( name='score_date', lookup_expr='gte' ) to_score_date = DateTimeFilter( name='score_date', lookup_expr='lte' ) player_name = AllValuesFilter( name='player__name' ) game_name = AllValuesFilter( name='game__name' ) class Meta: model = PlayerScore fields = ( 'score', 'from_score_date', 'to_score_date', 'min_score', 'max_score', 'player_name', 'game_name', )
class HistoryLinesFilter(filters.FilterSet): after = NumberFilter(name="line_number", lookup_expr=('gt')) before = NumberFilter(name="line_number", lookup_expr=('lt')) class Meta: model = models.HistoryLines fields = ('line_number', )
class ParagonFilter(FilterSet): min_price = NumberFilter(field_name='suma', lookup_expr='gte') max_price = NumberFilter(field_name='suma', lookup_expr='lte') class Meta: model = Paragon fields = ['min_price', 'max_price']
class TicketFilter(FilterSet): from_price = NumberFilter(field_name='price', lookup_expr='gte') to_price = NumberFilter(field_name='price', lookup_expr='lte') class Meta: model = Ticket fields = ['from_price', 'to_price']
class EpicFilterSet(FilterSet): finished = BooleanFilter(label=_("Finalizada"), method="finished_filter") current_progress__gte = NumberFilter( label=_("Avance actual mayor o igual que"), field_name="annotated_current_progress", lookup_expr="gte") current_progress__lte = NumberFilter( label=_("Avance actual menor o igual que"), field_name="annotated_current_progress", lookup_expr="lte") def finished_filter(self, queryset, field_name, value): condition = Q(annotated_current_progress=100) if value is True: return queryset.filter(condition) elif value is False: return queryset.exclude(condition) else: return queryset class Meta: model = Epic fields = { "id": ["exact", "in"], "name": ["icontains"], "description": ["icontains"], "external_reference": ["icontains"], "tags__name": ["in", "iexact", "icontains", "istartswith"], }
class UslugaFilter(FilterSet): min_price = NumberFilter(field_name='cena_netto', lookup_expr='gte') max_price = NumberFilter(field_name='cena_netto', lookup_expr='lte') class Meta: model = Usluga fields = ['min_price', 'max_price']
class BillingDocumentFilter(FilterSet): id = NumberFilter(name='id', lookup_expr='iexact') state = MultipleCharFilter(name='state', lookup_expr='iexact') number = NumberFilter(name='number', lookup_expr='iexact') customer = NumberFilter(name='customer__pk', lookup_expr='iexact') customer_name = CharFilter(name='customer__name', lookup_expr='icontains') customer_company = CharFilter(name='customer__company', lookup_expr='icontains') provider_name = CharFilter(name='provider__name', lookup_expr='icontains') provider_company = CharFilter(name='provider__company', lookup_expr='icontains') issue_date = DateFilter(name='issue_date', lookup_expr='iexact') due_date = DateFilter(name='due_date', lookup_expr='iexact') paid_date = DateFilter(name='due_date', lookup_expr='iexact') cancel_date = DateFilter(name='cancel_date', lookup_expr='iexact') currency = MultipleCharFilter(name='currency', lookup_expr='icontains') sales_tax_name = MultipleCharFilter(name='sales_tax_name', lookup_expr='icontains') is_overdue = BooleanFilter(name='overdue', method='filter_is_overdue') def filter_is_overdue(self, queryset, _, value): if value: return queryset.overdue() return queryset.not_overdue() class Meta: model = BillingDocumentBase fields = [ 'id', 'state', 'number', 'customer_name', 'customer_company', 'provider_name', 'provider_company', 'issue_date', 'due_date', 'paid_date', 'cancel_date', 'currency', 'sales_tax_name', 'is_overdue' ]
class ReferenceByRankFilter(django_filters.FilterSet): title = CharFilter(field_name='title', lookup_expr='icontains', label='Title: ', widget=forms.TextInput(attrs={'class': 'filter-field'})) project = ModelChoiceFilter( field_name='project', queryset=Project.objects.all(), label='Project: ', widget=forms.Select(attrs={'class': 'filter-field'})) user = ModelChoiceFilter( field_name='author', queryset=User.objects.all(), label='User: '******'class': 'filter-field'})) team = ModelChoiceFilter( field_name='team', queryset=Team.objects.all(), label='Team: ', widget=forms.Select(attrs={'class': 'filter-field'})) startYear = NumberFilter( field_name='year', lookup_expr='gte', label='From year: ', widget=forms.NumberInput(attrs={'class': 'filter-field'})) endYear = NumberFilter( field_name='year', lookup_expr='lte', label='To year: ', widget=forms.NumberInput(attrs={'class': 'filter-field'})) class Meta: model = Reference fields = ''
class OrderPaymentFilter(FilterSet): order_id = NumberFilter(name="order_event__id", label="orderId") customer_id = NumberFilter(name="customer__id", label="customerId") class Meta: model = OrderPayment fields = ['order_id', 'customer_id']