2012-08-02 3 views
2

템플릿에서 나는 {% url "news.views.article" article=article.id %}입니다. 여기서 article.id는 현재 표시된 기사의 ID입니다. 내 urls.py이 포함URL이있을 때 Django가있는 NoReverseMatch

NoReverseMatch at /news/ 
Reverse for '"news.views.article"' with arguments '()' and keyword arguments '{'article': 2}' not found. 

답변

4

이보기 정의의 주위에 따옴표없이보십시오.

{% url news.views.article article=article.id %} 

이미 뷰 이름을 정의 했으므로 함수를 이름으로 호출해야합니다.

+0

또 다른 방법은 따옴표를 유지하고'{% load url from future %}'을 템플릿에 추가하는 것입니다. 그렇게하면 Django 1.5를 사용할 수 있습니다. – Alasdair

+2

[1.3 릴리스 노트] (https://docs.djangoproject.com/en/1.4/releases/1.3/#changes-to-url-and-ssi) 및 [1.4 Docs] (https : //docs.djangoproject .com/en/1.4/ref/templates/builtins/# url) (앞으로의 호환성) 자세한 내용 –

0

뷰 이름에 따옴표와 구문은 장고 1.5에서만 작동 : 나는 위의 templatetag가 포함 된 페이지를로드 할 때

그러나
url(r'^news/$', 'news.views.index'), 
url(r'^news/article/(?P<article>\d{1,4})/$', 'news.views.article'), 

, 나는이를 얻을 수 . 아마도 이전 버전을 사용하고 있기 때문에 따옴표를 제거하거나 템플릿을 추가해야합니다.

{% load url from future %} 

그런 다음 따옴표를 사용해야합니다. 사용 중단에

더 많은 정보 - Django 1.3 release notes

+0

'' 'news.views.article' '을 (를)'(2) '인수와'{ ''을 (를) 찾을 수없는 'Reverse for' '에 대해 역방향으로 처리합니다.' ' – q3d

+0

yiyrag, you 're you 맞아, 진짜 문제가 아니 었어. 나는 실제 설명으로 답을 갱신했다. – Tisho

관련 문제