python - Django:找不到页面
python - Django : Page Not found
我环顾四周,找不到真正解决我的问题的方法。这是 django 抛出的错误。当在我的主页上有一个 link 视图时,会抛出此错误,单击该视图应将您定向到所述 link.
的详细视图
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),
]
我的index/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'),
]
我的views.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
) 和视图名称 (distro_id
) 结合使用:
<a href="{% url 'index:distro_id' index.id %}">
请注意,index.distro.id
也有错误,因为 index
实际上是一个 Distros
对象。它有一个 id
字段,但没有 distro.id
.
我环顾四周,找不到真正解决我的问题的方法。这是 django 抛出的错误。当在我的主页上有一个 link 视图时,会抛出此错误,单击该视图应将您定向到所述 link.
的详细视图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),
]
我的index/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'),
]
我的views.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
) 和视图名称 (distro_id
) 结合使用:
<a href="{% url 'index:distro_id' index.id %}">
请注意,index.distro.id
也有错误,因为 index
实际上是一个 Distros
对象。它有一个 id
字段,但没有 distro.id
.