2016-09-10 3 views
0

장고 1.10에서 템플릿 엔진으로 jinja2를 사용하고 있습니다. 나는 같은 정의가있는 모델이 있습니다django with jinja2 템플릿의 모델 get_absolute_url 정의를 사용합니다.

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가있다 : 내가 <a href='{{next_work.get_absolute_url() }}' class='directional-menu-prev'>Önceki</a>를 통해 내 템플릿에 절대 URL을 얻기 위해 내 모델 정의를 사용할 때

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') 

내가 얻을 오류 :

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이 "work_detail"가 아닌 "apps.web.views.work_detail"라고합니다. get_absolute_url 메소드에서 해당 이름을 사용해야합니다.

1

reverse 함수의 문서에 따르면 첫 번째 매개 변수는 "URL 패턴 이름 또는 호출 가능 뷰 객체가 될 수 있습니다." 따라서 work_detail보기 함수를 가져 와서 reverse 함수 (작은 따옴표 제외)로 직접 전달하거나 'work_detail' 인 URL 패턴 이름을 전달하십시오.

관련 문제