Skip to main content
 首页 » 编程设计

python -Django : Page Not found

2024年10月24日28leader

我环顾四周,找不到真正解决我的问题的方法。这是 django 抛出的错误。当我的主页上有一个链接时会抛出此错误,单击该链接应将您定向到所述链接的详细信息 View 。

Using the URLconf defined in untitled.urls, Django tried these URL patterns, in this order: 
 
    ^$ 
    ^index/ ^$ [name='index'] 
    ^index/ ^(?P<distro_id>[0-9]+)/$ [name='distro_id']  
    ^admin/ 
 
The current URL, index//, didn't match any of these. 

据我所知,我不明白为什么会抛出此错误。

这是我的 urls.py

from django.conf.urls import include, url 
from django.contrib import admin 
import index.views 
urlpatterns = [ 
    url(r'^$', index.views.index), 
    url(r'^index/', include('index.urls', namespace='index')), 
    url(r'^admin/', admin.site.urls), 
] 

我的索引/urls.py

from django.conf.urls import url 
from . import views 
 
 
urlpatterns = [ 
    # /index/ 
    url(r'^$', views.index, name='index'), 
 
    #/distro/123/ 
    url(r'^(?P<distro_id>[0-9]+)/$', views.detail, name='distro_id'), 
 
] 

我的观点.py

from django.shortcuts import get_object_or_404, render 
from django.template import loader, RequestContext 
from django.http import Http404 
from .models import Distros 
 
 
def index(request): 
    all_distros = Distros.objects.all() 
    context = {'all_distros': all_distros, } 
    return render(request, 'index/index.html', context) 
 
 
def detail(request, distro_id,): 
    distro_id = get_object_or_404 (Distros, pk=distro_id) 
    return render(request, 'index/detail.html', {'distro_id': distro_id}) 

模板代码:

    {% extends 'index/base.html' %} 
 
{% block body %} 
<ul> 
    {% for distro in all_distros %} 
        <li><a href="/index/{{ distro_id }}/">{{ index.distro_id }}</a></li> 
    {% endfor %} 
</ul> 
{% endblock %} 

我相信这些都是相关文件。我相信一切都设置正确,所以我不确定为什么会抛出错误。我确定我错过了一些我刚刚忽略的简单内容。

请您参考如下方法:

请不要使用硬编码 URL,因为在您的情况下它们很容易出错。而不是:

<a href="/index/{{ index.distro.id }}/"> 

将 url 模板标签与您的命名空间 (index) 和 View 名称 (distro_id) 结合使用:

<a href="{% url 'index:distro_id' index.id %}"> 

请注意,index.distro.id 也有错误,因为 index 实际上是一个 Distros 对象。它有一个 id 字段,但没有 distro.id。