2010-02-05 2 views
1

Я хочу иметь возможность передать переменную, попавшую в URL-адрес, в объект Q для общего представления.django dynamic Q объекты в общем представлении

Я создал общий вид, который импортируется в my_views.view, который обрабатывает такие вещи, как пагинацией, сортировка, фильтрация и т.д. ...

мне нужно использовать объекты Q, потому что для некоторых страниц будет нуждаться некоторые или фильтры. Каждая страница также будет фильтроваться на основе разных полей (и моделей) (следовательно, общий вид).

Пример:

view_customers_info = { 
    "queryset" : Customer.all(), 
    'qobject': Q(status=stat), 
    "extra_context" : { 
     "title" : 'View Customers', 
    }, 
    'template_name': 'customer/view.html', 
} 
urlpatterns = patterns('', 
    url(r'^customer/(?P<stat>\w+)/$', my_views.view, view_customers_info), 
) 

В этом примере, эта линия жалуется стат не является глобальным именем:

'qobject': Q(status=stat), 

Как я могу передать переменную пойманной в URL в словаре view_customers_info?

Я просто не могу двигаться, что Q объект в общий взгляд, потому что другие страницы будут иметь Q объекты, такие как следующие:

'qobject': (Q(type=type) | Q(status=stat)), 

Спасибо.

ответ

0

Я думаю, что вам просто не хватает котировок вокруг названия поля.

'qobject': Q(status=("%s" % stat)), 
Смежные вопросы