2017-01-15 3 views
0

Ошибка:Джанго ошибка во время шаблона рендеринга, потому что URL тега

NoReverseMatch at/

    Reverse for 'detail' with arguments '(3,)' and keyword arguments '{}' not found. 1 pattern(s) tried: [u'$(?P<college_id>[0-9]+)/$'] 

Ошибка в этой строке:

<li><a href="{% url 'app:detail' college.id %}">{{ college.college_name }}</a></li> 

Здесь весь шаблон (index.html):

{% if latest_college_list %} 

<ul> 
    {% for college in latest_college_list %} 
    <li><a href="{% url 'app:detail' college.id %}">{{ college.college_name }}</a></li> 
    {% endfor %} 
</ul> 

{% else %} 
<p> No colleges available </p> 
{% endif %} 

Вид:

from django.shortcuts import get_object_or_404, render 
from .models import College 

# Create your views here. 
def index(request): 
    latest_college_list = College.objects.order_by('college_name') 
    context = {'latest_college_list': latest_college_list} 
    return render(request, 'app/index.html', context) 

def detail(request, college_id): 
    college = get_object_or_404(College, pk=college_id) 
    return render(request, 'app/detail.html', {'college':college}) 

urls.py:

from django.conf.urls import url 
from . import views 

app_name = "app" 
urlpatterns = [ 
    # campusarchitecture.com/ 
    url(r'^$', views.index, name="index"), 
    # /college_name 
    url(r'^(?P<college_id>[0-9]+)/$', views.detail, name="detail") 
] 

корень URLs конф:

from django.conf.urls import include, url 
from django.contrib import admin 

urlpatterns = [ 
    url(r'^$', include('app.urls')), 
    url(r'^login/$', include('login.urls')), 
    url(r'^admin/', admin.site.urls), 
] 

Кто-нибудь знает, в чем проблема?

+0

Какая ошибка вы получаете? Кроме того, как выглядит ваш корневой URL-адрес? – karthikr

ответ

1

Вот вопрос:

url(r'^$', include('app.urls')), 

Должно быть

url(r'^', include('app.urls', namespace="app")), 

Обратите внимание на $ должны быть удалены, поскольку это указывает на конец шаблона регулярного выражения, и он не будет обнаружить включены шаблоны URL ,

Во-вторых, вам необходимо явно указать namespace в include. Подробнее об этом в documentation here.

Аналогичным образом удалите $ после соответствия шаблону URL-адреса login/.

+0

Большое вам спасибо! –