2016-09-10 4 views
0

私はDjango 1.10のテンプレートエンジンとしてjinja2を使用しています。テンプレート内のモデルのget_absolute_url定義を使用したdjango

def get_absolute_url(self): 
     return reverse('apps.web.views.work_detail', kwargs={'year':self.created_at.year, 
                  'month':self.created_at.strftime("%m"), 
                  'day':self.created_at.strftime("%d"), 
                  'slug':self.slug, 
                  'workId':self.id}) 

と私のurls.pyがあります:

url(r'^ardiye/çalışmalar/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/(?P<slug>[-\w]+),(?P<workId>\d)/$', work_detail, name='work_detail') 

私は<a href='{{next_work.get_absolute_url() }}' class='directional-menu-prev'>Önceki</a>経由で私のテンプレートで絶対URLを取得するために私のモデル定義を使用するときに私が手に私がように定義されているモデルを持っていますエラー:

NoReverseMatch at/
Reverse for 'apps.web.views.work_detail' with arguments '()' and keyword arguments '{'year': 2016, 'slug': 'kksjs', 'month': '09', 'day': '10', 'workId': 2}' not found. 0 pattern(s) tried: [] 

答えて

1

あなたのURLは「apps.web.views.work_detail」ではなく「work_detail」と呼ばれます。 get_absolute_urlメソッドでその名前を使用する必要があります。

1

reverse関数のドキュメントに基づいて、最初のパラメータは「URLパターン名または呼び出し可能なビューオブジェクトになります」。したがって、work_detailビュー関数をインポートし、reverse関数(一重引用符なし)に直接渡すか、URLパターン名('work_detail')を渡します。

関連する問題