Django-filter: مقارنة مشاكل IsoDateTimeFilter بخلاف "الدقيق"

تم إنشاؤها على ١٤ سبتمبر ٢٠١٧  ·  3تعليقات  ·  مصدر: carltongibson/django-filter

كنت أحاول تنفيذ التصفية الموضحة هنا: http://django-filter.readthedocs.io/en/develop/ref/filters.html#isodatetimefilter

أثناء نجاح هذه الطريقة ، أردت أكثر من مجرد مطابقة "تامة" ، لذلك استبدلت:
fields = ['published']
مع:
fields = {'published': ['exact', 'gte', 'lte']}
لا يزال هذا يعمل من أجل التصفية "الدقيقة" باستخدام IsoDateTime ، ولكن بالنسبة لـ "gte" و "lte" ، فإنه يفشل عند استخدام IsoDateTime. يعمل عند استخدام DateTime.

أنا أستخدم حلاً في الوقت الحالي يعمل مع IsoDateTime من خلال تحديد كل بحث بشكل منفصل:

published = django_filters.IsoDateTimeFilter(
    name='published', lookup_expr='exact')
published_gte = django_filters.IsoDateTimeFilter(
    name='published', lookup_expr='gte')
published_lte = django_filters.IsoDateTimeFilter(
    name='published', lookup_expr='lte')

التعليق الأكثر فائدة

يمكنك استخدام Meta.filter_overrides لتغيير فئة المرشح المستخدمة في حقل النموذج.

class BookFilter(django_filters.FilterSet):

    class Meta:
        model = Book
        fields = {'published': ['exact', 'lte', 'gte']}
        filter_overrides = {
            models.DateTimeField: {'filter_class': django_filters.IsoDateTimeFilter},
        }

ال 3 كومينتر

أمم. كانت ردي الأول هو قبول هذا فقط كحد للقاموس بناء جملة fields . إعلان الحقول صراحة - "الحل البديل" - هو الطريقة الأساسية للقيام بذلك. يعتبر بناء جملة القاموس مجرد اختصار ، ولا توجد مشكلة في وجود قيود عليه.

بعد قولي هذا ، سأقوم بإجراء تغيير بصمة صغيرة "لإصلاح" هذا ...

يمكنك استخدام Meta.filter_overrides لتغيير فئة المرشح المستخدمة في حقل النموذج.

class BookFilter(django_filters.FilterSet):

    class Meta:
        model = Book
        fields = {'published': ['exact', 'lte', 'gte']}
        filter_overrides = {
            models.DateTimeField: {'filter_class': django_filters.IsoDateTimeFilter},
        }

carltongibson أنا سعيد بقبول التحديد. حاولت البحث عن "إصلاح" سريع ولكن فهمي للأعمال الداخلية للشفرة محدود للغاية في الوقت الحالي: /

rpkilby شكرًا ، اقتراحك يعمل بشكل جيد ،

carltongibson هل ترغب في ملاحظة هذا القيد في المستندات؟ يسعدني تقديم طلب سحب له إذا كنت تعتقد أنه مناسب.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات