Django:找不到页面

时间:2017-01-15 03:19:45

标签: python django http-status-code-404

我从Django获得了404,之前关于这个主题的帖子(其中有很多)似乎没有帮助。

views.py

from django.views.generic.detail import DetailView, SingleObjectMixin
from app.models import MyModel

class MyDetails(DetailView, SingleObjectMixin):
    template_name = "app/my_view.html"
    model = MyModel

urls.py

from django.conf.urls import include, url
from django.contrib   import admin
from app.views import MainList, post_form_upload, MyDetails

urlpatterns = [
    url(r'^$', MainList.as_view(), name="main_list"),
    url(r'^add_something$', post_form_upload, name="add_something"),
    url(r'^my_details/(?P<pk>\d+)$', MyDetails.as_view(), name="my_details"),
]

应用程序/ urls.py

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

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

当我输入网址:http://localhost:8000/my_details时,出现以下错误:

Using the URLconf defined in app.urls, Django tried these URL patterns, in this order:
^$ [name='main_list']
^add_something$ [name='add_something']
^my_details/(?P<pk>\d+)$ [name='my_details']
The current URL, my_details, didn't match any of these.

其他两个网址(/和/ add_something)运行正常。

1 个答案:

答案 0 :(得分:2)

首先,不确定您是如何处理此问题的,而是在app/urls.py

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

应该是

(r'^/', include('app.urls')),

$表示正则表达式模式的结束,include()内的任何内容都不会包含在内。

其次,您的网址格式都不匹配my_details/它们只匹配my_details/<id>

关于URL regex, etc..

的文档的更多内容