Skip to main content
 首页 » 编程设计

python之在 url 模式中使用 include() 时出现意外的 NoReverseMatch 错误

2025年05月04日10shangdawei

引用 detail.html 时出现错误在index.html

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

views.py

def rock_and_feat(request): 
    feats = Feat.objects.order_by('-created')[:3] 
    rocks = Rockinfo.objects.order_by('-rank')[:50] 
    context = RequestContext(request, { 
        'feats': feats, 'rocks': rocks 
    }) 
    return render_to_response('template.html', context) 
 
 
class DetailView(generic.DetailView): 
    model = Feat 
    template_name = 'feature/detail.html'  
    context_object_name = 'feat' 

urls.py

urlpatterns = [ 
    url(r'^$', views.rock_and_feat, name='rock_and_feat'), 
    url(r'^(?P<pk>[0-9]+)/$', views.DetailView.as_view(), name='detail'), 
] 

index.html

{% extends "index.html" %} 
{% block mainmast %} 
<div id="wrapper"> 
{% if feats %} 
{% for feat in feats %} 
 <div class="specialsticky"> 
 <a href="{% url 'feature:detail' feat.id %}"><img src="{{ feat.image.url }}" alt="some text"></a> 
  <h1 class="mast-header"> 
    <a href="#">{{feat.title}}</a> 
  </h1> 
 </div> 
 
 {% endfor %} 
 {% else %} 
<p>No </p> 
 {% endif %} 
</div> 
{% endblock %} 

detail.html

{% extends "index.html" %} 
 
<iframe width="560" height="345" src="{{ feat.youtube_link }}"       frameborder="0" allowfullscreen></iframe> 

项目 urls.py

from django.conf.urls import include, url 
from django.contrib import admin 
from django.conf import settings 
from django.conf.urls.static import static 
 
 
urlpatterns = [ 
    url(r'^$', include('feature.urls', namespace="feature")), 
    url(r'^admin/', include(admin.site.urls)), 
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

在我添加 <a href= 之前应用程序运行良好在 index.html 中的图像上.

不知道哪里出了问题。

请您参考如下方法:

这表明存在问题。

'$(?P<pk>[0-9]+)/$' 

模式的开头不应该有美元符号(匹配字符串的末尾)。

问题是由您包含 urls.py 的方式引起的。您目前在正则表达式中有一美元:

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

要解决此问题,请从正则表达式中删除美元。

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