我从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)运行正常。
答案 0 :(得分:2)
首先,不确定您是如何处理此问题的,而是在app/urls.py
(r'^$', include('app.urls')),
应该是
(r'^/', include('app.urls')),
$
表示正则表达式模式的结束,include()
内的任何内容都不会包含在内。
其次,您的网址格式都不匹配my_details/
它们只匹配my_details/<id>