2012-02-07 26 views
0

我无法设法在类视图中获取命名空间name-id。有谁知道?class-views中的命名空间

我想要做的是过滤一个查询集,以获取适合每个命名空间的模型。

这里是我的代码:

urls.py

urlpatterns = patterns('',  
    url(r'^art/', include('items.urls', namespace='art', app_name='items')), 
    url(r'^electronics/', include('items.urls', namespace='electronics', app_name='items')), 
) 

items.urls.py

url(r'^items/$', ItemListView.as_view(model=models.MyItem), name='item_list'), 

ItemListView.py

from django.views.generic import ListView 

class ItemListView(ListView) 
    def get_queryset(self): 
     qs = super(ItemListView, self).get_queryset() 
     qs... # <- Here I want to filter for MyItem.namespace = namespace (!) 
     return qs 
+1

我不认为命名空间传递给任何意见。这不仅仅是为了扭转? – 2012-02-07 17:18:09

+0

情况并非如此,但我们可以考虑一个博客应用程序。如果我们想为几个用户使用相同的博客应用程序,我们可以使用命名空间获取应用程序的多个实例... ..但是如果我们只想获取用户写的帖子,我们需要获取查询集。 (好吧,我知道在博客的例子中,我们可以使用url-param来获取用户名,但在我的情况下,这将是一个解决方法,而不是一个聪明的解决方案) – jgsogo 2012-02-07 17:28:42

回答

3

在这种情况下,这不是命名空间。他们只是为了扭转目的将观点分组在一起。

如果你想给一个变量传递给你的看法,你需要明确地做到这一点:

url(r'^/(?P<category>\s+)/items/$', ItemListView.as_view(model=models.MyItem), name='item_list'), 
+0

是的,我搞砸了我的心...谢谢。 – jgsogo 2012-02-07 18:32:04