2013-09-25 2 views
0

Я пытаюсь получить значение от request и действительно удивляет, что возникает ошибка.Получение значения из запроса, django

def product_view(request): 
    lookup_type_user = request.GET.get('lookup_type', '') 

    LOOKUP_TYPE_CHOICES = (
       ('gt', '>'), 
       ('lt', '<'),  
      ) 

    class ProductFilter(django_filters.FilterSet): 
     lookup_type = django_filters.ChoiceFilter(choices=LOOKUP_TYPE_CHOICES) 
     price = django_filters.NumberFilter(lookup_type=lookup_type_user) 

Эта линия, будучи в основном одинаковой, отлично работает.

price = django_filters.NumberFilter(lookup_type='gte') 

Я не отправляя сообщение об ошибке, потому что это пакет соответствующих один и так как линия выше, где я обеспечил lookup_type рукой ничего не поднимал я assumming это не имеет ничего общего с этим пакетом, но приведенный выше код ,

Вы видите, что неправильно?

@EDIT

Есть ли способ, я могу распечатать request, чтобы увидеть, что она содержит в точности?

+0

Где этот код? Предположительно, это не все вместе в одном месте. Или вы действительно определяете ProductFilter внутри функции просмотра? –

+0

'lookup_type_user' оценивается один раз при импорте этого файла. Я предполагаю, что вы получаете ошибку, например, «запрос не существует» или так? –

+0

Что такое URL? Соответствует ли ''> ''соответствующим образом? – Rohan

ответ

0

У меня это работает. Это было мое невежество. Мне пришлось переопределить lookup_type в forms.py. Как это:

lookup_type = forms.ChoiceField(choices=LOOKUP_TYPE_CHOICES) 

и не:

lookup_type = django_filters.ChoiceFilter(choices=LOOKUP_TYPE_CHOICES) 

Потому, что Джанго-фильтр делает, он пытается фильтровать lookup_type поле, которое не существует в моей модели. Это была ошибка FieldError at/. Cannot resolve keyword 'lookup_type' into field, о которой я не знал, потому что другое приложение, которое я использую, - django_tables2 изменило эту ошибку на что-то еще, что меня обманом удавалось.

Это, наверное, бесполезная нить, но я просто хочу, чтобы плееры, которые пытались решить эту проблему, знают.

Смежные вопросы