2012-03-21 9 views
0

私は自分のブログ記事を取得してパーマリンクを返そうとしていますので、ブログの指示にpingすることができますが、私が作成したpermalink関数を呼び出すと、私がgoogleing/stackoverflowingから見つけたものはすべて、1つのエラーまたは別のものを取得します。Django permalinkはブログアプリケーションでは機能しません

私は戻って取得しています最も一般的なエラー:

Reverse for 'viewpost' with arguments '()' and keyword arguments '{'slug': u'site-redesign'}' not found. 

このエラーの私のモデル:

class BlogPost(models.Model): 
    author = models.ForeignKey(User, related_name='posts') 
    title = models.CharField(max_length=200) 
    slug = models.SlugField(max_length=200) 
    ... 
    @models.permalink 
    def get_absolute_url(self): 
     return ('viewpost',(), { 'slug':self.slug}) 

マイurls.py:

urlpatterns = patterns('blog.views', 
    ... 
    (r'^post/(?P<page_slug>[a-zA-Z0-9-]+)/$', 'viewpost'), 
    ... 
) 

私は印刷する場合: reverse( 'blogPost'、kwargs = {'slug':self.slug})正しいURLを取得します。

私は間違っています。

私は経由して関数を呼び出しています:あなたは任意のより多くの情報が必要な場合は私に知らせてください

signals.post_save.connect(
    ping_directories(content_attr = 'body', url_attr = 'get_absolute_url'), sender = BlogPost, weak = False) 

--edit複数のビュー

#pages 

(r'^post/(?P<page_slug>[a-zA-Z0-9-]+)/$', 'viewpost'), 

(r'^category/(?P<category_slug>[a-zA-Z0-9-]+)/page/(?P<page_number>[0-9]+)/$', 'viewcategories'), 
(r'^category/$', 'listcategories'), 

(r'^tag/(?P<tag_slug>[a-zA-Z0-9-]+)/page/(?P<page_number>[0-9]+)/$', 'viewtag'), 
(r'^tag/$', 'listtags'), 

(r'^category/(?P<category_slug>[a-zA-Z0-9-]+)/$', 'viewcategories'), 
(r'^tag/(?P<tag_slug>[a-zA-Z0-9-]+)/$', 'viewtag'), 
(r'^comments/', include('django.contrib.comments.urls')), 

(r'^page/(?P<page_number>[0-9]+)/$', 'index'), 
(r'^$', 'index'), 
) 

とビュー:あなたのpermlinkにURLとスラグ中kwargsからのpage_slugと呼ばれてきました

def viewpost(request, page_slug): 
    blog_post = get_object_or_404(BlogPost, post_status = 'published', slug=page_slug) 
    path = settings.BLOG_PATH 

    return render_to_response("blog/detail.html", { "post": blog_post, "path":path}, context_instance=RequestContext(request)) 

答えて

1

+0

は私だけだろう:リターン( 'viewpost'、()) – Designer023

+2

'リターン( 'viewpost'、()、{ 'page_slug':self.slug})' – John

+0

に戻ってきます:引数 '()'とキーワード引数 'を使って' viewpost 'を逆にする{' page_slug ':u'site-redesign'} 'が見つかりません。 – Designer023

0

があることが判明私のget_absolute_urlを呼び出すメソッドは余分なコールバックを必要としたので、私は誤解を受けていました。混乱の謝罪!問題のあるコード:

signals.post_save.connect(ping_directories(content_attr = 'body', url_attr = 'get_absolute_url', feed_url_fun=lambda x: 'http://example.com/feed/address/here/'), sender = BlogPost, weak = False) 
関連する問題