Ejemplo n.º 1
0
        class UserFilter(FilterSet):
            username = filters.CharFilter(field_name='username')
            email = filters.CharFilter(field_name='email')

            class Meta:
                model = User
                fields = []
Ejemplo n.º 2
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
Ejemplo n.º 3
0
class TripFilterSet(FilterSet):
    seats_left__gte = filters.NumberFilter(label="Assentos restantes ou mais",
                                           method='get_seats_left')
    origin_radius = filters.NumberFilter(
        label="Raio de pesquisa na origem em km", method='get_radius')
    destination_radius = filters.NumberFilter(
        label="Raio de pesquisa no destino em km", method='get_radius')
    origin = filters.CharFilter(label="Endereço de origem",
                                method='get_origin')
    destination = filters.CharFilter(label="Endereço de destino",
                                     method='get_destination')

    def get_seats_left(self, qs, name, value):
        seats_left = F('max_seats') - Coalesce(
            Sum('passengers__seats', filter=~Q(passengers__status="denied")),
            0)
        qs = qs.annotate(s_left=seats_left)
        val = value
        expr = name.split('__')[1] if len(name.split('__')) > 1 else 'exact'
        return qs.filter(**{f's_left__{expr}': val})

    def get_radius(self, qs, name, value):
        return qs

    def get_origin(self, qs, name, value):
        radius = self.data.get('origin_radius', '10')
        if not radius:
            radius = '10'
        radius = min(max(float(radius), 0.05), 20)
        pipe = RequestPipeline('origin', self.request)
        result = pipe.search(value)
        if result is None:
            return qs.none()
        return qs.filter(origin_point__distance_lte=(result.point,
                                                     D(km=radius)))

    def get_destination(self, qs, name, value):
        radius = self.data.get('destination_radius', '10')
        if not radius:
            radius = '10'
        radius = min(max(float(radius), 0.05), 20)
        pipe = RequestPipeline('destination', self.request)
        result = pipe.search(value)
        if result is None:
            return qs.none()
        return qs.filter(destination_point__distance_lte=(result.point,
                                                          D(km=radius)))

    class Meta:
        model = Trip
        fields = {
            'price': ['lte'],
            'datetime': ['exact', 'gte', 'lte'],
            'auto_approve': ['exact']
        }
class AFilter(FilterSet):
    title = filters.CharFilter(name='title')
    b = RelatedFilter('tests.testapp.filters.BFilter', name='b')

    class Meta:
        model = A
        fields = []
        class F(FilterSet):
            pk = filters.AutoFilter(field_name='id', lookups=['exact'])
            individual = filters.CharFilter()

            class Meta:
                model = Note
                fields = []
class CFilter(FilterSet):
    title = filters.CharFilter(name='title')
    a = RelatedFilter(AFilter, name='a')

    class Meta:
        model = C
        fields = []
class AFilter(FilterSet):
    title = filters.CharFilter(field_name='title')
    b = RelatedFilter('BFilter', field_name='b', queryset=B.objects.all())

    class Meta:
        model = A
        fields = []
Ejemplo n.º 8
0
class NoteFilterWithRelated(FilterSet):
    title = filters.CharFilter(field_name='title')
    author = RelatedFilter(UserFilter, field_name='author', queryset=User.objects.all())

    class Meta:
        model = Note
        fields = []
Ejemplo n.º 9
0
class PageFilterWithAliasedNestedRelated(FilterSet):
    title = filters.CharFilter(field_name='title')
    two_pages_back = RelatedFilter(PostFilter, field_name='previous_page__previous_page', queryset=Page.objects.all())

    class Meta:
        model = Page
        fields = []
Ejemplo n.º 10
0
class CoverFilterWithRelatedMethodFilter(FilterSet):
    comment = filters.CharFilter(field_name='comment')
    post = RelatedFilter(PostFilter, field_name='post', queryset=Post.objects.all())

    class Meta:
        model = Cover
        fields = []
Ejemplo n.º 11
0
class UserFilterWithAll(FilterSet):
    username = AllLookupsFilter(field_name='username')
    email = filters.CharFilter(field_name='email')

    class Meta:
        model = User
        fields = []
Ejemplo n.º 12
0
        class NoteFilter(FilterSet):
            title = filters.CharFilter(name='title')
            author = filters.RelatedFilter(UserFilter, name='author')

            class Meta:
                model = Note
                fields = []
Ejemplo n.º 13
0
class BlogPostFilter(FilterSet):
    title = filters.CharFilter(field_name='title')
    tags = RelatedFilter(TagFilter, field_name='tags', queryset=Tag.objects.all())

    class Meta:
        model = BlogPost
        fields = []
Ejemplo n.º 14
0
class PageFilterWithRelated(FilterSet):
    title = filters.CharFilter(field_name='title')
    previous_page = RelatedFilter(PostFilter, field_name='previous_page', queryset=Post.objects.all())

    class Meta:
        model = Page
        fields = []
Ejemplo n.º 15
0
class BFilter(FilterSet):
    name = filters.CharFilter(field_name='name')
    c = RelatedFilter('CFilter', field_name='c', queryset=C.objects.all())

    class Meta:
        model = B
        fields = []
Ejemplo n.º 16
0
class NoteFilterWithRelatedAllDifferentFilterName(FilterSet):
    title = filters.CharFilter(field_name='title')
    writer = RelatedFilter(UserFilterWithAll, field_name='author', queryset=User.objects.all())

    class Meta:
        model = Note
        fields = []
class CFilter(FilterSet):
    title = filters.CharFilter(field_name='title')
    a = RelatedFilter('AFilter', field_name='a', queryset=A.objects.all())

    class Meta:
        model = C
        fields = []
    class NoteFilter(FilterSet):
        # A simpler version of NoteFilter that doesn't use autofilter expansion
        title = filters.CharFilter()
        author = filters.RelatedFilter(UserFilter)

        class Meta:
            model = Note
            fields = []
class AFilter(FilterSet):
    title = filters.CharFilter(name='title')
    b = RelatedFilter('tests.testapp.filters.BFilter',
                      name='b',
                      queryset=B.objects.all())

    class Meta:
        model = A
        fields = []
Ejemplo n.º 20
0
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 = []
Ejemplo n.º 21
0
class TagFilter(BaseFilterSet):
    id_not_in = filters.CharFilter(method='id_not_in_function')

    def id_not_in_function(self, qs, name, value):
        ids = [x.strip() for x in value.split(',')]
        return qs.filter(~Q(id__in=ids))

    class Meta:
        model = Tag
        fields = {
            "label": FilterFields.String,
            "system_created": FilterFields.Boolean
        }
Ejemplo n.º 22
0
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',
        ]
Ejemplo n.º 23
0
class CardsFilter(FilterSet):
    hero = filters.CharFilter(field_name="hero", method="filter_hero")

    class Meta:
        model = Card
        fields = [
            "standard",
            "hero",
            "card_type",
            "quality",
            "race",
            "expansion",
            "cost",
            "keywords",
        ]  # filtrar id hero

    def filter_hero(self, qs, name, value):
        """
        QS -> Card.objects.filter(name="Prophet")
        name -> hero
        value -> id of the hero to search, for example 2
        """
        return qs.filter(heroes=value)
Ejemplo n.º 24
0
 class NoteFilter(FilterSet):
     title = filters.CharFilter()
Ejemplo n.º 25
0
 class UserFilter(FilterSet):
     username = filters.CharFilter()
class DFUserFilter(django_filters.FilterSet):
    email = filters.CharFilter(field_name='email')

    class Meta:
        model = User
        fields = '__all__'
Ejemplo n.º 27
0
class NoteFilterWithRelatedAll(FilterSet):
    title = filters.CharFilter(name='title')
    author = RelatedFilter(UserFilterWithAll, name='author')

    class Meta:
        model = Note
Ejemplo n.º 28
0
class NoteFilterWithRelatedAllDifferentFilterName(FilterSet):
    title = filters.CharFilter(name='title')
    writer = RelatedFilter(UserFilterWithAll, name='author')

    class Meta:
        model = Note
class UserFilterWithAlias(FilterSet):
    name = filters.CharFilter(field_name='username')

    class Meta:
        model = User
        fields = []
Ejemplo n.º 30
0
class UserFilterWithDifferentName(FilterSet):
    name = filters.CharFilter(field_name='username')

    class Meta:
        model = User
        fields = []