我从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 = MyModelurls.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"),
]app/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)),
]当我输入URL: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.另外两个URL (/和/add_something)工作正常。
发布于 2017-01-15 11:21:01
首先,我不确定为什么你不会遇到这个问题,而是在你的app/urls.py中
(r'^$', include('app.urls')),应该是
(r'^/', include('app.urls')),$表示正则表达式模式的结束,include()中的任何内容都不会包含在内。
其次,你的网址模式都不匹配my_details/,它们只匹配my_details/<id>
关于URL regex, etc..文档的更多信息
https://stackoverflow.com/questions/41657475
复制相似问题