我正在阅读并阅读“实用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
)
到目前为止,这是我对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
)
所以这就是我到目前为止所做的一切,我希望在导航到这本书的时候,在第一页/页面上有一个“TemplateDoesNotExist”: http://example.com:1006/first-page/
但不是那样,我只是得到404错误。
我是否正确地做了这个或者是否有新的Django版本贬低了制作平板的方式?
答案 0 :(得分:8)
我终于明白了,网上的每一个资源根本都没有提到这一点。他们甚至从来没有在Apress书的整章中介绍过这些内容。希望从这里开始的所有其他人都不必花费3个小时来完成这个解决方案。
所以解决方案是,确保SITE_ID
文件中的settings.py
与点击"更改网站"在管理面板中。正如你在上面的图片中看到的那样,对我而言,数字是" 4"这是网站ID。所以我的settings.py
应该是这样的:
SITE_ID = 4
有许多这样的线程,人们只是说"将它改为1"这是误导。确保该号码与您的站点ID匹配!
答案 1 :(得分:-1)
第18页,在底部:"介绍Django模板系统"。按照说明创建模板目录,将其添加到TEMPLATE_DIRS,然后在该目录中创建模板文件。 (第18-21页)