Django-filter: 포함 / μ•„μ΄μ½˜ 포함 ν•„ν„°κ°€ μž‘λ™ν•˜μ§€ μ•ŠμŒ

에 λ§Œλ“  2017λ…„ 01μ›” 16일  Β·  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)

ν΄λΌμ΄μ–ΈνŠΈ ν•„ν„°λŠ” 기본적으둜 λ¬΄μ‹œλ©λ‹ˆλ‹€. icontain을 μ •ν™•ν•œ κ²ƒμœΌλ‘œ λ°”κΎΈλ©΄ μž‘λ™ν•©λ‹ˆλ‹€.
κ·ΈλŸ¬λ‚˜ λͺ¨λ“  ν•„λ“œμ—μ„œ μž‘μ—…ν•˜κΈ° μœ„ν•΄ 포함 λ˜λŠ” μ•„μ΄μ½˜μ„ κ°€μ Έμ˜¬ 수 μ—†μŠ΅λ‹ˆλ‹€.

μš”κ΅¬ 사항.txt:

μž₯κ³ ==1.10.4
사이코프2==2.6.2
μž₯고레슀트 ν”„λ ˆμž„μ›Œν¬==3.5.3
채널==1.0.0
djangorestframework-jwt==1.9.0
μž₯κ³  ν•„ν„°==1.0.1
asgi-redis==1.0.0
λ‹€ν”„λ„€==1.0.0

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ•ˆλ…•ν•˜μ„Έμš” @xtinch - 쿼리 λ§€κ°œλ³€μˆ˜κ°€ ν¬ν•¨λœ μƒ˜ν”Œ URL을 κ²Œμ‹œν•  수 μžˆμŠ΅λ‹ˆκΉŒ? λ‚΄ 생각 μ—” 당신이 μ§ˆμ˜ν•˜κ³  μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€ /api/orders?status=foo λŒ€μ‹  /api/orders?status__icontains=foo . Meta.fields λ¬Έμ„œμ—λŠ” exact 쑰회의 μ•½κ°„ λ‹€λ₯Έ λ™μž‘μ„ μ„€λͺ…ν•˜λŠ” λ©”λͺ¨κ°€ μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ“  4 λŒ“κΈ€

μ•ˆλ…•ν•˜μ„Έμš” @xtrinchμž…λ‹ˆλ‹€.

μ„€λͺ…μ—μ„œ λ‚˜λŠ” 문제λ₯Ό λ³Ό 수 μ—†μŠ΅λ‹ˆλ‹€. FilterSet 의 qs 속성에 쀑단점을 μ„€μ •ν•˜κ³  진행 상황을 ν™•μΈν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

κ°„λ‹¨ν•œ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ‘œ λ²”μœ„λ₯Ό 쒁힐 수 μžˆλ‹€λ©΄ 그것도 도움이 될 κ²ƒμž…λ‹ˆλ‹€.

Filter λŠ” 값을 κ°€μ Έμ˜€κ³  ORM에 λŒ€ν•œ 쑰회λ₯Ό λΉŒλ“œν•˜λ―€λ‘œ μ§ˆλ¬Έμ€ _μ–΄λ””μ„œ 잘λͺ»λ˜κ³  μžˆμŠ΅λ‹ˆκΉŒ?_μž…λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš” @xtinch - 쿼리 λ§€κ°œλ³€μˆ˜κ°€ ν¬ν•¨λœ μƒ˜ν”Œ URL을 κ²Œμ‹œν•  수 μžˆμŠ΅λ‹ˆκΉŒ? λ‚΄ 생각 μ—” 당신이 μ§ˆμ˜ν•˜κ³  μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€ /api/orders?status=foo λŒ€μ‹  /api/orders?status__icontains=foo . Meta.fields λ¬Έμ„œμ—λŠ” exact 쑰회의 μ•½κ°„ λ‹€λ₯Έ λ™μž‘μ„ μ„€λͺ…ν•˜λŠ” λ©”λͺ¨κ°€ μžˆμŠ΅λ‹ˆλ‹€.

@rpkilby κ°μ‚¬ν•©λ‹ˆλ‹€. λ°°μ—΄μ˜ 첫 번째 ν•­λͺ©μ΄ κΈ°λ³Έ ν•„ν„°κ°€ λœλ‹€λŠ” 인상을 λ°›μ•˜μŠ΅λ‹ˆλ‹€. μ œκ°€ 잘λͺ» μ•Œκ³  μžˆμ—ˆμŠ΅λ‹ˆλ‹€. :)

κ·€ν•˜μ˜ κ²Œμ‹œλ¬Όμ€ λ‚΄ ν”„λ‘œμ νŠΈμ—μ„œ λ‚˜μ—κ²Œ 맀우 μœ μš©ν•©λ‹ˆλ‹€
감사 ν•΄μš”

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰