Jetliu
Jetliu

Reputation: 11

Error: Reverse for 'detail' not found. 'detail' is not a valid view function or pattern name

Django version: 1.11.4 Python: 3.6.1

I want to add a line to my html file:

<a class="pure-button" href="{% url 'detail' id=post.id %}">Read More </a>

views.py:

def detail(request, id):
    try:
        post = Article.objects.get(id=int(id))
    except Article.DoesNotExist:
        raise Http404
    return render(request, 'post.html', {'post':post})

url.py:

from django.conf.urls import url,include
from django.contrib import admin
import article.views
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^(\d+)', article.views.detail),
    url(r'^', article.views.home),
]

I met the following errors:

NoReverseMatch at /
Reverse for 'detail' not found. 'detail' is not a valid view function or pattern name.
Request Method: GET
Request URL:    http://localhost:8000/
Django Version: 1.11.4
Exception Type: NoReverseMatch
Exception Value:    
Reverse for 'detail' not found. 'detail' is not a valid view function or pattern name.

Who can help me? Many thanks!

Upvotes: 1

Views: 5317

Answers (1)

Exprator
Exprator

Reputation: 27503

url(r'^(?P<id>\d+)/$', article.views.detail, name='detail'), 

change the url of your details view to the upper one

Upvotes: 3

Related Questions