【问题标题】:Django error during template rendering because URL tag模板渲染期间的 Django 错误,因为 URL 标记
【发布时间】:2017-05-30 03:55:15
【问题描述】:

错误:

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")
]

根网址配置:

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),
]

有谁知道问题出在哪里?

【问题讨论】:

  • 你得到的错误是什么?另外,你的根 url conf 是什么样的?

标签: python django python-2.7 url model-view-controller


【解决方案1】:

问题来了:

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

应该是

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

请注意,$ 应该被删除,因为它表示正则表达式模式的结束,并且它不会发现包含的 url 模式。

其次,您需要在include 中明确指定namespace。更多信息请关注documentation here

同样,在login/ URL 模式匹配之后删除$

【讨论】:

  • 非常感谢!
猜你喜欢
  • 1970-01-01
  • 2017-07-03
  • 2020-11-18
  • 2021-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-26
  • 2017-01-31
相关资源
最近更新 更多