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 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 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 CompetitionFilter(restframework_filters.FilterSet): from_achievement_date = DateTimeFilter( label='Distance achievement date starts from', name='distance_achievement_date', lookup_expr='gte') to_achievement_date = DateTimeFilter( label='Distance achievement date ends with', name='distance_achievement_date', lookup_expr='lte') min_distance_in_feet = NumberFilter(label='Distance in feet large than', name='distance_in_feet', lookup_expr='gte') max_distance_in_feet = NumberFilter(label='Distance in feet less than', name='distance_in_feet', lookup_expr='lte') drone_name = AllValuesFilter(label='✈️ Drone', name='drone__name') pilot_name = AllValuesFilter(label='👩 Pilot', 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', # drone__name => drone_name 'pilot_name') # pilot__name => pilot_name
class ProductFilter(FilterSet): brand = AllValuesFilter(field_name='brand__name', ) catalogue = AllValuesFilter(field_name='catalogue__name', ) class Meta: model = Product fields = ( 'brand', 'catalogue', )
class LessonFilter(FilterSet): day = AllValuesFilter(field_name='day') group = AllValuesFilter(field_name='group') week = AllValuesMultipleFilter(field_name='week') class Meta: model = Lesson fields = ( 'day', 'group', 'week', )
class BookFilter(PropertyFilterSet): name = CharFilter( field_name='name', lookup_expr='icontains', ) author = CharFilter( field_name='authors__name', lookup_expr='icontains', ) authors = AllValuesFilter(field_name='authors__name', ) genre = AllValuesFilter(field_name='genre__name', ) publisher = AllValuesFilter(field_name='publisher__name', ) from_pub_date = DateTimeFilter(field_name='pub_date', lookup_expr='gte') to_pub_date = DateTimeFilter(field_name='pub_date', lookup_expr='lte') price = NumberFilter( field_name='price', lookup_expr='icontains', ) isbn = CharFilter( field_name='isbn', lookup_expr='exact', ) total_qty = PropertyNumberFilter( field_name='total_qty', lookup_expr='gte', ) avail_qty = PropertyNumberFilter( field_name='avail_qty', lookup_expr='gte', ) rating = PropertyNumberFilter( field_name='rating', lookup_expr='gte', ) class Meta: model = models.Book fields = ( 'name', 'author', 'authors', 'genre', 'publisher', 'from_pub_date', 'to_pub_date', 'price', 'isbn', 'total_qty', 'avail_qty', 'rating', )
class RecipeFilter(django_filters.FilterSet): title = AllValuesFilter(name="title") ingredients = AllValuesFilter(name="ingredients") created = DateTimeFilter(name="created", lookup_expr="lte") tags = AllValuesFilter(name="tags") class Meta: model = Recipe fields = ( "title", "ingredients", "created", "tags" )
class EntryFilter(EntryExitFilterBase): provider = AllValuesFilter(field_name='provider__name', ) class Meta: model = Entry fields = ('from_created_date', 'to_created_date', 'user', 'provider')
class AllFiltersFilterSet(FilterSet): number_AllValuesFilter = AllValuesFilter(field_name='number', lookup_expr='exact') number_AllValuesMultipleFilter_OR = AllValuesMultipleFilter(field_name='number', lookup_expr='exact', conjoined=False) # OR number_AllValuesMultipleFilter_AND = AllValuesMultipleFilter(field_name='number', lookup_expr='exact', conjoined=True) # AND number_BaseCSVFilterNumber = BaseCSVFilterNumber(field_name='number', lookup_expr='in') number_BaseInFilterNumber = BaseInFilterNumber(field_name='number', lookup_expr='in') number_BaseRangeFilterNumber = BaseRangeFilterNumber(field_name='number', lookup_expr='range') is_true_BooleanFilter = BooleanFilter(field_name='is_true', lookup_expr='exact') text_CharFilter = CharFilter(field_name='text', lookup_expr='exact') number_ChoiceFilter = ChoiceFilter(field_name='number', lookup_expr='exact', choices=NUMBER_CHOICES) date_DateFilter = DateFilter(field_name='date', lookup_expr='exact') date_DateFromToRangeFilter = DateFromToRangeFilter(field_name='date', lookup_expr='range') date_DateRangeFilter = DateRangeFilter(field_name='date', lookup_expr='exact') date_time_DateTimeFilter = DateTimeFilter(field_name='date_time', lookup_expr='exact') date_time_DateTimeFromToRangeFilter = DateTimeFromToRangeFilter(field_name='date_time', lookup_expr='range') duration_DurationFilter = DurationFilter(field_name='duration', lookup_expr='exact') iso_date_time_IsoDateTimeFilter = IsoDateTimeFilter(field_name='iso_date_time', lookup_expr='lt') iso_date_time_IsoDateTimeFromToRangeFilter = IsoDateTimeFromToRangeFilter(field_name='iso_date_time', lookup_expr='range') number_MultipleChoiceFilter_OR = MultipleChoiceFilter(field_name='number', lookup_expr='exact', conjoined=False, choices=NUMBER_CHOICES) number_MultipleChoiceFilter_AND = MultipleChoiceFilter(field_name='number', lookup_expr='exact', conjoined=True, choices=NUMBER_CHOICES) number_NumberFilter = NumberFilter(field_name='number', lookup_expr='exact') number_OrderingFilter = OrderingFilter(fields=('number', 'number')) number_RangeFilter = RangeFilter(field_name='number', lookup_expr='range') time_TimeFilter = TimeFilter(field_name='time', lookup_expr='exact') time_TimeRangeFilter = TimeRangeFilter(field_name='time', lookup_expr='range') number_TypedChoiceFilter = TypedChoiceFilter(field_name='number', lookup_expr='exact', choices=NUMBER_CHOICES) text_TypedMultipleChoiceFilter_OR = TypedMultipleChoiceFilter(field_name='number', lookup_expr='exact', conjoined=False, choices=NUMBER_CHOICES) text_TypedMultipleChoiceFilter_AND = TypedMultipleChoiceFilter(field_name='number', lookup_expr='exact', conjoined=True, choices=NUMBER_CHOICES) uuid_UUIDFilter = UUIDFilter(field_name='uuid', lookup_expr='exact') number_LookupChoiceFilter = LookupChoiceFilter(field_name='number') class Meta: model = BenchmarkModel exclude = ['number', 'text', 'is_true', 'date', 'date_time', 'duration']
class SalePurchaseFilter(FilterSet): max_amount = NumberFilter(field_name='amount', lookup_expr='lte') min_amount = NumberFilter(field_name='amount', lookup_expr='gte') product_code = AllValuesFilter(field_name='product__code', )
class CenaFilter(FilterSet): cena_od = NumberFilter(field_name='cena', lookup_expr='gte') cena_do = NumberFilter(field_name='cena', lookup_expr='lte') idInstruktora = AllValuesFilter(field_name='idInstruktora__slug') class Meta: model = Kurs fields = ['cena_od', 'cena_do', 'idInstruktora']
class PropertyAllValuesFilterSet(PropertyFilterSet): number = AllValuesFilter(field_name='number', lookup_expr=lookup_xpr) prop_number = PropertyAllValuesFilter(field_name='prop_number', lookup_expr=lookup_xpr) class Meta: model = AllValuesFilterModel fields = ['prop_number']
class OfertaFilter(FilterSet): min_price = NumberFilter(field_name='cena', lookup_expr='gte') max_price = NumberFilter(field_name='cena', lookup_expr='lte') nazwa_oferty = AllValuesFilter(field_name='nazwa') class Meta: model = Oferta fields = ['nazwa_oferty', 'min_price', 'max_price']
class GeoServiceFilterSet(FilterSet): cumulative_status = AllValuesFilter(name="last_status__cumulative_status") intersects_extent = CharFilter(name='extent', lookup_expr='intersects') intersects_boundary = CharFilter(name='boundary', lookup_expr='intersects') class Meta: model = GeoService fields = ['type', 'epsg', 'submitter', 'cumulative_status']
class CompetitionFilter(FilterSet): min_distance_in_feet = NumberFilter(field_name='distance_in_feet', lookup_expr='gte') max_distance_in_feet = NumberFilter(field_name='distance_in_feet', lookup_expr='lte') drone_name = AllValuesFilter(field_name='drone__name') pilot_name = AllValuesFilter(field_name='pilot__name') class Meta: model = Competition fields = ( 'distance_in_feet', 'min_distance_in_feet', 'max_distance_in_feet', 'drone_name', 'pilot_name', )
class EntryExitFilterBase(FilterSet): from_created_date = DateTimeFilter(field_name='created_date', lookup_expr='gte') to_created_date = DateTimeFilter(field_name='created_date', lookup_expr='lte') user = AllValuesFilter(field_name='user__username', )
class PlayerScoreFilter(rest_framework.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에는 player_name으로 접근할 것이다. 'player_name', # game__name에는 game_name으로 접근할 것이다. 'game_name')
class UserFilter(FilterSet): from_date_joined = DateTimeFilter(field_name='date_joined', lookup_expr='gte') to_date_joined = DateTimeFilter(field_name='date_joined', lookup_expr='lte') user_name = AllValuesFilter(field_name='username', ) e_mail = AllValuesFilter(field_name='email', ) username = CharFilter(field_name='username', lookup_expr='icontains') email = CharFilter(field_name='email', lookup_expr='icontains') class Meta: model = get_user_model() fields = ( 'username', 'email', 'from_date_joined', 'to_date_joined', 'user_name', 'e_mail', )
class EmployeeFilter(FilterSet): """ Filter class for employee model """ from_hired_date = DateTimeFilter(field_name="hired_date", lookup_expr="gte") to_hired_date = DateTimeFilter(field_name="hired_date", lookup_expr="lte") from_promotion_date = DateTimeFilter(field_name="promotion_date", lookup_expr="gte") to_promotion_date = DateTimeFilter(field_name="promotion_date", lookup_expr="lte") min_salary = NumberFilter(field_name="salary", lookup_expr="gte") max_salary = NumberFilter(field_name="salary", lookup_expr="lte") min_age = NumberFilter(field_name="age", lookup_expr="gte") max_age = NumberFilter(field_name="age", lookup_expr="lte") profession_name = AllValuesFilter(field_name="profession__name") company_name = AllValuesFilter(field_name="company__name") class Meta: model = Employee fields = ( "name", "gender", "age", "min_age", "max_age", "hired_date", "from_hired_date", "to_hired_date", "promotion_date", "from_promotion_date", "to_promotion_date", "salary", "min_salary", "max_salary", # profession__name will be accessed as profession_name "profession_name", # company__name will be accessed as company_name "company_name", )
class MeasureListFilter(FilterSet): from_measure_date = DateTimeFilter(name='measure_date', lookup_expr='gte') to_measure_date = DateTimeFilter(name='measure_date', lookup_expr='lte') measure_name = AllValuesFilter(name='measure__name') class Meta: model = Measure fields = ( 'from_measure_date', 'to_measure_date', 'measure_name', )
class PartnerShipFilter(FilterSet): """ Filter class for partnership model """ from_year_partnership = DateTimeFilter(field_name="year_partnership", lookup_expr="gte") to_year_partnership = DateTimeFilter(field_name="year_partnership", lookup_expr="lte") company_inviter_name = AllValuesFilter(field_name="company_inviter__name") class Meta: model = PartnerShip fields = ( # company_inviter__name will be accessed as company_inviter_name "company_inviter_name", "year_partnership", "from_year_partnership", "to_year_partnership", )
class TransactionFilter(FilterSet): """ Custom filter class for /api/transactions/all """ throttle_scope = 'transactions' throttle_classes = (ScopedRateThrottle, ) from_date = DateTimeFilter(field_name='performed_at', lookup_expr='gte') to_date = DateTimeFilter(field_name='performed_at', lookup_expr='lte') reciever = AllValuesFilter(field_name='reciever_username') max_amt = NumberFilter(field_name='amount', lookup_expr='gte') min_amt = NumberFilter(field_name='amount', lookup_expr='lte') class Meta: model = Transaction fields = ( 'from_date', 'to_date', 'reciever', 'max_amt', 'min_amt', )
class UserIDFilter(FilterSet): votes = RangeFilter( widget=CustomRangeWidget(attrs={ 'type': 'number', 'step': 1 }, from_attrs={'placeholder': 'Votes from'}, to_attrs={'placeholder': 'Votes to'})) views = RangeFilter( widget=CustomRangeWidget(attrs={ 'type': 'number', 'step': 1 }, from_attrs={'placeholder': 'Views from'}, to_attrs={'placeholder': 'Views to'})) category = AllValuesMultipleFilter() shadowhidden = AllValuesFilter(empty_label='Shadowhidden') class Meta: model = Sponsortime fields = FIELDS exclude = ['username', 'user']
class AllValuesFilterSet(FilterSet): number = AllValuesFilter(field_name='number', lookup_expr=lookup_xpr) class Meta: model = AllValuesFilterModel fields = ['number']