из rest_framework.filters импорт SearchFilter генерирует ошибку, поскольку не удается импортировать имя ‘ORDER_PATTERN’ из ‘django.db

#django #django-rest-framework #django-rest-framework-filters

#django #django-rest-framework #django-rest-framework-filters

Вопрос:

Я обнаружил, что строка from rest_framework.filters import SearchFilter выдает мне ошибку как

  from django.db.models.sql.constants import ORDER_PATTERN
ImportError: cannot import name 'ORDER_PATTERN' from 'django.db.models.sql.constants' (E:anacondaenvsAHG_weblibsite-packagesdjangodbmodelssqlconstants.py)
 

Я использовал это, как показано ниже:

 class op_ViewSet(viewsets.ModelViewSet) :
    # permission_classes = (permissions.IsAuthenticated,)

    queryset = Op.objects.all().filter()
    serializer_class = op_Serializer
    # authentication_classes = [TokenAuthentication , SessionAuthentication , BasicAuthentication]
    # pagination_class = PageNumberPagination
    # pagination_class = StandardResultsSetPagination
    filter_backends = [DjangoFilterBackend , SearchFilter]
    filter_class = op_filter
    ordering_fields = ['close_date' , ]
    ordering = ['close_date']
    search_fields = ['website' , 'title' , 'description' , 'organization__name']

    @action(detail=True , methods=['Get'])
    def attachments(self , request , pk) :
        op = self.get_object()
        links = Attachments.objects.filter(op_id=op.id)
        serializer = attachments_Serializer(links , many=True)
        return Response(serializer.data)
 

раньше все работало нормально, кто-нибудь может помочь мне с решением.

Комментарии:

1. Какие версии Django и rest framework у вас установлены?

2. @lain Shelvington (3, 1, 5, ‘final’, 0)

3. А версия rest_framework?

4. Существуют проблемы с django_filters и django> 3, которые с тех пор были исправлены. Вы недавно обновили django, но не django_filters?

5. При быстром поиске кажется, что это, вероятно, проблема с устаревшим DRF: github.com/encode/django-rest-framework/pull/7259

Ответ №1:

Это похоже на проблему совместимости между версиями Django и Django Rest Framework. Обновление до последней версии DRF должно устранить ее.

(У меня была эта ошибка после обновления Django 3.0.x до 3.2)