Django-filter: Berisi / ikon filter tidak berfungsi

Dibuat pada 16 Jan 2017  ·  4Komentar  ·  Sumber: 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)

Filter klien pada dasarnya diabaikan. Jika saya mengganti icontains dengan tepat, itu berfungsi.
Tapi saya tidak bisa mendapatkan berisi atau ikon untuk bekerja di bidang apa pun.

Persyaratan.txt:

Django==1.10.4
psycopg2==2.6.2
djangorestframework==3.5.3
saluran == 1.0.0
djangorestframework-jwt==1.9.0
django-filter == 1.0.1
asgi-redis==1.0.0
daphne==1.0.0

Komentar yang paling membantu

Hai @xtrinch - bisakah Anda memposting contoh URL dengan parameter kueri? Dugaan saya adalah Anda menanyakan /api/orders?status=foo alih-alih /api/orders?status__icontains=foo . Ada catatan di dokumen Meta.fields yang menjelaskan perilaku pencarian exact yang sedikit berbeda.

Semua 4 komentar

Hai @xtrinch.

Dari deskripsi saya tidak bisa melihat masalah. Dapatkah saya menyarankan agar Anda mencoba menempatkan breakpoint di properti FilterSet qs dan melangkah untuk melihat apa yang terjadi.

Jika Anda dapat mempersempitnya menjadi kasus uji sederhana, itu juga akan membantu.

Filter hanya mengambil nilai dan membangun pencarian untuk ORM jadi pertanyaannya adalah, _Di mana kesalahannya?_

Hai @xtrinch - bisakah Anda memposting contoh URL dengan parameter kueri? Dugaan saya adalah Anda menanyakan /api/orders?status=foo alih-alih /api/orders?status__icontains=foo . Ada catatan di dokumen Meta.fields yang menjelaskan perilaku pencarian exact yang sedikit berbeda.

@rpkilby Terima kasih. Saya mendapat kesan bahwa item pertama dalam array menjadi filter default - sepertinya saya salah :)

posting Anda sangat berguna bagi saya dalam proyek saya
Terima kasih

Apakah halaman ini membantu?
0 / 5 - 0 peringkat