2012-01-26 51 views
1

我有包含在include關鍵字中的django的命名url的問題。在我的主要urls.py我有url(r'^blog/$', include('blog.urls', namespace='blog')),在我的blog.urls我有url(r'^(?P<slug>[-\w]+)/$', BlogDetailView.as_view(template_name='blog_detail.html'), name='blog_detail'),並且我想使用該命名的url作爲模型中get_absolute_url()函數的返回語句。如果鍵入Django的get_absolute_url和命名空間的名稱網址

@models.permalink 
    def get_absolute_url(self): 
     return('blog_detail',(), {'slug':self.slug}) 

它不工作...如果我刪除inculde statment並把我的網址全部blog_detail URL,它就像一個魅力,我能做些什麼來解決?

感謝您的建議...

回答

0

您不是在命名空間的前綴。使用以下代替:

@models.permalink 
def get_absolute_url(self): 
    return('blog:blog_detail',(), {'slug':self.slug}) 
+1

它的工作,但我不得不添加app_name =「博客」的主要urls.py謝謝! – Maksim

+1

這真的是正確答案嗎?命名空間用於允許應用程序的多個實例正確嗎?因此,如果來自該應用程序的模型引用了硬編碼命名空間,那麼這有什麼幫助?我期望像'get_current_namespace()'或類似的東西。 –

+0

@StijndeWitt如何做到這一點? – Phares