Esempio n. 1
0
class UserFilter(FilterSet):
    date_joined = filters.AllLookupsFilter(name='date_joined')
    username = filters.AllLookupsFilter(name='username')

    class Meta:
        model = User
        fields = ('date_joined', 'username', 'first_name', 'last_name')
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})
Esempio n. 3
0
class RegionFilter(GeoFilterSet, FilterSet):
    slug = filters.AllLookupsFilter(name='slug')
    geom = filters.AllLookupsFilter(name='geom')
    settings = filters.RelatedFilter(RegionSettingsFilter,
                                     name='regionsettings')

    class Meta:
        model = Region
        fields = ('slug', )
Esempio n. 4
0
class MapFilter(GeoFilterSet, FilterSet):
    points = filters.AllLookupsFilter(name='points')
    lines = filters.AllLookupsFilter(name='lines')
    polys = filters.AllLookupsFilter(name='polys')
    page = filters.RelatedFilter(PageFilter, name='page')
    region = filters.RelatedFilter(RegionFilter, name='region')
    length = filters.AllLookupsFilter(name='length')

    class Meta:
        model = MapData
Esempio n. 5
0
class RedirectFilter(GeoFilterSet, FilterSet):
    source = filters.AllLookupsFilter(name='source')
    destination = filters.RelatedFilter(PageFilter, name='destination')
    region = filters.RelatedFilter(RegionFilter, name='region')

    class Meta:
        model = Redirect
Esempio n. 6
0
class FileFilter(GeoFilterSet, FilterSet):
    slug = filters.AllLookupsFilter(name='slug')
    region = filters.RelatedFilter(RegionFilter, name='region')

    class Meta:
        model = PageFile
        fields = ('name', 'slug')
Esempio n. 7
0
class NoteFilterWithRelatedAll(DRFFilterSet):
    title = filters.AllLookupsFilter()
    author = filters.RelatedFilter(UserFilterWithAll)

    class Meta:
        model = Note
        fields = []
Esempio n. 8
0
class BlogPostOverrideFilter(FilterSet):
    declared_publish_date__isnull = filters.NumberFilter(field_name='publish_date', lookup_expr='isnull')
    all_declared_publish_date = filters.AllLookupsFilter(field_name='publish_date')

    class Meta:
        model = BlogPost
        fields = {'publish_date': '__all__', }
        class F(FilterSet):
            id = filters.AllLookupsFilter()
            id__in = f

            class Meta:
                model = Note
                fields = []
class NoteFilterWithRelatedAll(DRFFilterSet):
    title = filters.AllLookupsFilter()
    author = filters.RelatedFilter(UserFilterWithAll, queryset=User.objects.all())

    class Meta:
        model = Note
        fields = []
Esempio n. 11
0
class PostFilter(FilterSet):
    # Used for Related filter and MethodFilter tests
    note = RelatedFilter(NoteFilterWithRelatedAll, name='note')
    date_published = filters.AllLookupsFilter()
    is_published = filters.MethodFilter()

    class Meta:
        model = Post

    def filter_is_published(self, name, qs, value):
        """
        `is_published` is based on the actual `date_published`.
        If the publishing date is null, then the post is not published.
        """
        # convert value to boolean
        null = value.lower() != 'true'

        # The lookup name will end with `is_published`, but could be
        # preceded by a related lookup path.
        if LOOKUP_SEP in name:
            rel, _ = name.rsplit(LOOKUP_SEP, 1)
            name = LOOKUP_SEP.join([rel, 'date_published__isnull'])
        else:
            name = 'date_published__isnull'

        return qs.filter(**{name: null})
Esempio n. 12
0
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 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})
Esempio n. 14
0
class RegionSettingsFilter(GeoFilterSet, FilterSet):
    region_center = filters.AllLookupsFilter(name='region_center')

    class Meta:
        model = RegionSettings
        fields = ('default_language', )
        class F(FilterSet):
            id = filters.AllLookupsFilter()

            class Meta:
                model = Note
        class F(FilterSet):
            author = filters.AllLookupsFilter(field_name='author__last_name')

            class Meta:
                model = Note
                fields = []
Esempio n. 17
0
 class Mixin(FilterSet):
     title = filters.AllLookupsFilter()
class UserFilterWithAll(DRFFilterSet):
    username = filters.AllLookupsFilter()

    class Meta:
        model = User
        fields = []
Esempio n. 19
0
class HistoricalMapFilter(HistoricalFilter, MapFilter):
    polys = filters.AllLookupsFilter(name='polys')

    class Meta:
        model = MapData.versions.model
Esempio n. 20
0
 class F(FilterSet):
     field = filters.AllLookupsFilter()
class HistoricalFilter(FilterSet):
    history_date = filters.AllLookupsFilter(name='history_date')
    history_type = filters.AllLookupsFilter(name='history_type')
    history_user = filters.RelatedFilter(UserFilter, name='history_user')
    history_user_ip = filters.AllLookupsFilter(name='history_user_ip')