Django-filter: рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рд╢рд╛рдорд┐рд▓ / рдЖрдЗрдХрди рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 16 рдЬрдире░ 2017  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: carltongibson/django-filter

class OrderFilter(django_filters.FilterSet):
    class Meta:
        model = Order
        fields = {
            'status': ['exact',],
            'client': ['icontains',],
        }
class OrderViewset(viewsets.ModelViewSet):
    filter_class = OrderFilter
    permission_classes = ( permissions.IsAuthenticated, )
    serializer_class = OrderSerializer
    queryset = Order.objects.all()
    filter_backends = (
        filters.OrderingFilter,
        filters.SearchFilter,
        filters.DjangoFilterBackend
    )
    ordering_fields = ('added_at', 'status', 'client', 'order_number')
    ordering = ('-added_at',)
class Order(models.Model):
    order_number = models.CharField(max_length=255, default='')
    client = models.CharField(max_length=255, default='')
    status = models.CharField(max_length=255, default='')
    added_at = models.DateTimeField(auto_now_add=True)

рдХреНрд▓рд╛рдЗрдВрдЯ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ рдЖрдЗрдХрдиреЛрдВ рдХреЛ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХрд┐рд╕реА рднреА рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд╛рдорд┐рд▓ рдпрд╛ рдкреНрд░рддреАрдХ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред

рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ.txt:

Django == 1.10.4
psycopg2==2.6.2
djangorestframework==3.5.3
рдЪреИрдирд▓ == 1.0.0
djangorestframework-jwt==1.9.0
django-рдлрд╝рд┐рд▓реНрдЯрд░==1.0.1
рдПрдПрд╕рдЬреАрдЖрдИ-рд░реЗрдбрд┐рд╕ == 1.0.0
рдбрд╛рдлреНрдиреЗ == 1.0.0

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рд╛рдп @xtrinch - рдХреНрдпрд╛ рдЖрдк рдХреНрд╡реЗрд░реА /api/orders?status=foo рдХреЗ рдмрдЬрд╛рдп /api/orders?status__icontains=foo ред Meta.fields рдбреЙрдХреНрд╕ рдореЗрдВ рдПрдХ рдиреЛрдЯ рд╣реИ рдЬреЛ exact рд▓реБрдХрдЕрдк рдХреЗ рдереЛрдбрд╝реЗ рднрд┐рдиреНрди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рд╛рдп @xtrinchред

рд╡рд┐рд╡рд░рдг рд╕реЗ рдореБрдЭреЗ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИред рдХреНрдпрд╛ рдореИрдВ рдЖрдкрдХреЛ рд╕рд▓рд╛рд╣ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреА FilterSet рдХреА qs рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдбрд╛рд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдЗрд╕рд╕реЗ рднреА рдорджрдж рдорд┐рд▓реЗрдЧреАред

Filter рдмрд╕ рдореВрд▓реНрдп рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдУрдЖрд░рдПрдо рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реБрдХрдЕрдк рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ _рдпрд╣ рдХрд╣рд╛рдВ рдЧрд▓рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ?_

рд╣рд╛рдп @xtrinch - рдХреНрдпрд╛ рдЖрдк рдХреНрд╡реЗрд░реА /api/orders?status=foo рдХреЗ рдмрдЬрд╛рдп /api/orders?status__icontains=foo ред Meta.fields рдбреЙрдХреНрд╕ рдореЗрдВ рдПрдХ рдиреЛрдЯ рд╣реИ рдЬреЛ exact рд▓реБрдХрдЕрдк рдХреЗ рдереЛрдбрд╝реЗ рднрд┐рдиреНрди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред

@rpkilby рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХреЗ рддрд╣рдд рдерд╛ рдХрд┐ рд╕рд░рдгреА рдореЗрдВ рдкрд╣рд▓рд╛ рдЖрдЗрдЯрдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝рд┐рд▓реНрдЯрд░ рдмрди рдЬрд╛рддрд╛ рд╣реИ - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЧрд▓рдд рдерд╛ :)

рдЖрдкрдХреА рдкреЛрд╕реНрдЯ рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ
рдзрдиреНрдпрд╡рд╛рдж

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕