2012-01-26 35 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')があり、私はそのモデルのget_absolute_url()関数のreturn statmentという名前のURLを使いたいと思っています。私はそれが仕事をdoesntのDjango get_absolute_urlと名前空間付きの名前付きURL

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

を入力した場合、私はinculdeなステートメントを削除し、私のURLですべてのblog_detail URLを入れた場合は...、それは魔法のように動作し、私は修正するために何ができるのでしょうか?

アドバイスありがとうございました...

答えて

0

あなたは名前空間のプレフィックスを付けません。代わりに以下を使用してください:

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

私はapp_name = "blog"をメインのurls.pyに追加する必要がありました。ありがとうございました! – Maksim

+1

これは本当に正解ですか?ネームスペースはアプリケーションの複数のインスタンスを許可するためのものですか?したがって、そのアプリケーションのモデルがハードコードされた名前空間を参照している場合、それはどのように役立ちますか?私は 'get_current_namespace()'なんか何かを期待しています。 –

+0

@StijndeWittどうすればできますか? – Phares

関連する問題