私は自分のブログ記事を取得してパーマリンクを返そうとしていますので、ブログの指示に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))
は私だけだろう:リターン( 'viewpost'、()) – Designer023
'リターン( 'viewpost'、()、{ 'page_slug':self.slug})' – John
に戻ってきます:引数 '()'とキーワード引数 'を使って' viewpost 'を逆にする{' page_slug ':u'site-redesign'} 'が見つかりません。 – Designer023