2010-02-05 83 views
1

我希望能够将URL中捕获的变量传递给通用视图的Q对象。django通用视图中的动态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)),