2012-02-07 28 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