i can't understand what's wrong? tried make detail page of 1 item, in example on http://tutorial.djangogirls.org/en/extend_your_application/index.html , doesn't work in project, in exercises good.
error message: noreversematch @ /
reverse 'events.views.event_detail' arguments '()' , keyword arguments '{u'pk': 3}' not found. 1 pattern(s) tried: ['$event/(?p<pk>[0-9]+)/$'] html(fragment)
<div class="col-xs-6"><a class="btn btn-primary" href="{% url 'events.views.event_detail' pk=event.pk %}">read more</a></div> </div> settings.py
root_urlconf = 'mysite.urls' app urls.py
from django.conf.urls import include, url . import views urlpatterns = [ url(r'^$', views.events_list), url(r'^event/(?p<pk>[0-9]+)/$', views.event_detail), ] app views.py
from django.shortcuts import render, get_object_or_404 django.utils import timezone .models import event def events_list(request): events = event.objects.filter(published_date__lte=timezone.now()).order_by('published_date') return render(request, 'events/events_list.html', {'events': events}) def event_detail(request, pk): event = event.objects.get(pk=pk) return render(request, 'events/event_detail.html', {'event': event})
you haven't shown mysite.urls, error message looks have done this:
(r'^events/$', include('events.urls')), you need drop terminating $, since means end of regex; nothing can match after that. should be:
(r'^events/', include('events.urls')), note should give event urls names, make easier reference:
url(r'^$', views.events_list, name='events_list'), url(r'^event/(?p<pk>[0-9]+)/$', views.event_detail, name='event_detail'), so can do:
{% url 'event_detail' pk=event.pk %}
Comments
Post a Comment