我正在阅读并阅读"实用Django项目:第二版"这本书,很多书已经过时了,整个章节根本不起作用.现在我正在尝试创建我的第一个平面页面,我收到404错误.
我正在尝试使用内置的'django.contrib.flatpages'应用程序,我已经通过管理面板创建了我的第一个平面页面:

这是我的urls.py文件:
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
(r'', include('django.contrib.flatpages.urls')) #ADDED THIS LINE FOR FLATPAGES
)
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止对settings.py文件所做的事情:
SITE_ID = 1 # REQUIRED FOR 'django.contrib.flatpages'
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'django.contrib.flatpages', # ADDED FOR FLATPAGES
'south',
)
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware', #FOR FLATPAGES
)
Run Code Online (Sandbox Code Playgroud)
这就是我到目前为止所做的所有事情,我希望在导航到这本书的时候可以在"/ first-page /"上找到"TemplateDoesNotExist":http://example.com:1006/first-page /
但不是那样,我只是得到404错误.
我是正确地做了这个还是新的Django版本贬低了制作flatpages的方式?
我终于明白了,网上的每一个资源都没有提到这一点.他们甚至从来没有在Apress书的整章中介绍过这些内容.希望从这里出来的其他人不必花费3个小时来解决这个问题.

因此,解决方案是,在管理面板中单击"更改站点"时,确保文件SITE_ID中的settings.py文件与站点URL中的编号匹配.正如您在上图中看到的那样,对我来说,数字是"4",这是站点ID.所以我settings.py应该看起来像这样:
SITE_ID = 4
Run Code Online (Sandbox Code Playgroud)
有许多这样的线程,人们只是说"将其改为1",这是误导性的.确保该号码符合您的站点ID!
| 归档时间: |
|
| 查看次数: |
2117 次 |
| 最近记录: |