找不到页面(404):django无法匹配路径

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了找不到页面(404):django无法匹配路径相关的知识,希望对你有一定的参考价值。

我不明白为什么我得到4040错误,而我似乎已经正确地解决了一切。 Ticket模型类具有保存在数据库中的实例,因此也存在从1到5的pkhtml模板是最简单的,只是为了弄清楚为什么django无法获取并呈现所请求的实例。请注意,我可以看到admin页面中的实例以及添加新票证等其他路径正常工作。任何帮助表示赞赏:

我想要获得的路径/页面:

http://127.0.0.1:8000/ticket/1/

app:urls.py

from . import views

urlpatterns = [
    url(r'^$', views.home, name='home'),
    url(r'ticket/<int:pk>/', views.ticket_detail, name='ticket_detail'),
]

project:urls.py

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

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

views.朋友

def ticket_detail(request, pk):
    ticket=get_object_or_404(Ticket,pk=pk)
    return render(request,'mmrapp/ticket_detail.html',{'ticket':ticket})

HTML

{% extends 'mmrapp/__l_single_column.html' %}
{% load static %}

{% block main_col %}
    <div class="ticket">
        <h2>Ticket: {{ticket.pk}}</h2>
    </div>  

{% endblock main_col %}
答案

据我所知,<int:pk>语法只能通过path函数(Django 2.0中的introduced),而不是url,所以你应该使用path函数或拒绝使用这种语法并切换到旧的正则表达式:

url(r'ticket/(?P<pk>d+)/', views.ticket_detail, name='ticket_detail')  

此外,您需要在视图中将pk参数转换为int,因为使用正则表达式捕获的所有参数都是字符串。

以上是关于找不到页面(404):django无法匹配路径的主要内容,如果未能解决你的问题,请参考以下文章

找不到页面 (404) 请求方法:GET .......当前路径,博客/博客文章,与其中任何一个都不匹配

在 Django 网站上找不到页面 404?

Django 1.9.0:找不到页面 404 Django 媒体文件

URL 错误 404 找不到 Django 页面错误 x.html

Django:找不到页面(404)

找不到 Django Python 页面 (404)