class PostFilter(FilterSet): # Used for Related filter and Filter.method regression tests title = filters.AllLookupsFilter(field_name='title') publish_date = filters.AllLookupsFilter() is_published = filters.BooleanFilter(field_name='publish_date', method='filter_is_published') note = RelatedFilter(NoteFilter, field_name='note', queryset=Note.objects.all()) tags = RelatedFilter(TagFilter, field_name='tags', queryset=Tag.objects.all()) class Meta: model = Post fields = [] def filter_is_published(self, qs, name, value): """ `is_published` is based on the actual `date_published`. If the publishing date is null, then the post is not published. """ isnull = not value lookup_expr = LOOKUP_SEP.join([name, 'isnull']) return qs.filter(**{lookup_expr: isnull})
class PostFilter(FilterSet): # Used for Related filter and Filter.method regression tests title = filters.AutoFilter(field_name='title', lookups='__all__') publish_date = filters.AutoFilter(lookups='__all__') is_published = filters.BooleanFilter(method='filter_is_published') author = RelatedFilter(UserFilter, field_name='author', queryset=User.objects.all()) note = RelatedFilter(NoteFilter, field_name='note', queryset=Note.objects.all()) tags = RelatedFilter(TagFilter, field_name='tags', queryset=Tag.objects.all()) class Meta: model = Post fields = [] def filter_is_published(self, queryset, field_name, value): """ `is_published` is based on the actual `publish_date`. If the publish date is null, then the post is not published. This filter method is used to demonstrate annotations. """ # Note: don't modify this without updating test_filtering.AnnotationTests return queryset.annotate_is_published() \ .filter(**{field_name: value})
class UserFilter(FilterSet): username = filters.CharFilter(name='username') email = filters.CharFilter(name='email') last_login = filters.AllLookupsFilter() is_active = filters.BooleanFilter(name='is_active') class Meta: model = User
class CompanyListFilter(FilterSet): active = filters.BooleanFilter() class Meta: Model = Company fields = [ 'active', ]
class RoleDetailFilter(FilterSet): active = filters.BooleanFilter() id = filters.NumberFilter() class Meta: Model = Note fields = [ 'active', 'id', ]
class AuditAreaListFilter(FilterSet): active = filters.BooleanFilter() company = filters.NumberFilter() class Meta: Model = AuditArea fields = [ 'active', 'company', ]
class SpecialtyTypeListFilter(FilterSet): active = filters.BooleanFilter() company = filters.NumberFilter() class Meta: Model = SpecialtyType fields = [ 'active', 'company', ]
class CategoryListFilter(FilterSet): active = filters.BooleanFilter() company = filters.NumberFilter() class Meta: Model = Category fields = [ 'active', 'company', ]
class IndicatorListFilter(FilterSet): active = filters.BooleanFilter() company = filters.NumberFilter() class Meta: Model = Indicator fields = [ 'active', 'company', ]
class NoteTypeListFilter(FilterSet): active = filters.BooleanFilter() type = filters.NumberFilter() class Meta: Model = NoteType fields = [ 'active', 'type', ]
class UserFilter(FilterSet): username = AutoFilter(field_name='username', lookups='__all__') email = filters.CharFilter(field_name='email') last_login = AutoFilter(lookups='__all__') is_active = filters.BooleanFilter(field_name='is_active') posts = RelatedFilter('PostFilter', field_name='post', queryset=Post.objects.all()) class Meta: model = User fields = []
class TemplateListFilter(FilterSet): active = filters.BooleanFilter() company = filters.NumberFilter() class Meta: model = Template fields = [ 'id', 'active', 'company', ]
class AuditDetailFilter(FilterSet): categories = filters.RelatedFilter(CategoryListFilter, field_name="categories__parent", queryset=Audit.objects.all()) active = filters.BooleanFilter() template = filters.NumberFilter() class Meta: Model = Audit fields = [ 'active', 'categories', 'template', ]
class AuditListFilter(FilterSet): company = filters.RelatedFilter(TemplateListFilter, field_name="template__company__id", queryset=Template.objects.all()) active = filters.BooleanFilter() template = filters.NumberFilter() class Meta: Model = Audit fields = [ 'active', 'company', 'template', ]
class TemplateCategoryListFilter(FilterSet): template = filters.RelatedFilter(TemplateListFilter, field_name="template__id", queryset=Template.objects.all()) active = filters.BooleanFilter() company = filters.NumberFilter() parent = filters.CharFilter() class Meta: Model = TemplateCategory fields = [ 'active', 'company', 'template', 'parent', ]
class PostFilter(FilterSet): # Used for Related filter and Filter.method regression tests note = RelatedFilter(NoteFilterWithRelatedAll, name='note') date_published = filters.AllLookupsFilter() is_published = filters.BooleanFilter(name='date_published', method='filter_is_published') class Meta: model = Post def filter_is_published(self, qs, name, value): """ `is_published` is based on the actual `date_published`. If the publishing date is null, then the post is not published. """ isnull = not value lookup_expr = LOOKUP_SEP.join([name, 'isnull']) return qs.filter(**{lookup_expr: isnull})