2017-12-05 16 views
1

새로운 Django 2.0 업데이트가 URL을 역전하여 템플릿에 인쇄하는 방식을 위반했습니다. 정규 표현식을 사용하면 잘 작동하지만 새로운 단순화 된 방법을 사용하면 오류가 반환됩니다. 여기 Django 2.0의 URL 리버스

NoReverseMatch at /blog/archive/ 
Reverse for 'article' with keyword arguments '{'id': 1}' not found. 1 pattern(s) tried: ['blog/article/<int:id>/$'] 

는 여기
<h3 class="item-title"><a href="{% url 'blog:article' id=article.id %}">{{ article.title }}</a></h3> 

는 URL 패턴입니다, 내가 URL을 인쇄 할 때 사용하는

url(r'^blog/article/<int:id>/$', views.article, name='article'), 

이며, 여기에 문서 기능입니다

def article(request, id): 
    try: 
     article = Article.objects.get(id=id) 
    except ObjectDoesNotExist: 
     article = None 

    context = { 
     'article': article, 
     'error': None, 
    } 

    if not article: 
     context['error'] = 'Oops! It seems that the article you requested does not exist!' 

    return render(request, 'blog/article.html', context) 

아직 해결책을 찾지 못했습니다. 바라기를이 포스트는 다른 사람들을 도울 것입니다.

답변

1

Django 2.0에서 url()re_path()의 별명이며 정규 표현식을 계속 사용합니다.

간단한 구문은 path()을 사용하십시오.

from django.urls import path 

urlpatterns = [ 
    path(r'^blog/article/<int:id>/$', views.article, name='article'), 
] 
+0

감사합니다. 업데이트에 대해 자세히 읽었어야합니다. 그들이 많은 것을 바꾼 것처럼 보입니다. 내 사이트가 지금 작동합니다! –