开发者

django flatpages aren't working

My flatpages relevant options in the settings.py look like this:

MIDDLEWARE_CLASSES = (
    'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
    'django.middleware.common.Commo开发者_如何学PythonnMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
)

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.admin',
    'django.contrib.flatpages',
    'django.contrib.humanize',
    'registration',
)

and in the Backend I added a flatpage with the url set to "/" and one with "/about/. When I call these pages, django shows a 404 error. All my flatpages have a unique template. The "Template Name" entries are looking like this: /flatpages/about.html. What did i miss?


I found it.

I forgot to set the SITE_ID in settings.py correctly.


Do you have a base/default template in place for your flatpages, too? It's easy to miss as they docs don't go into much detail.

Easiest fix is to add /flatpages/default.html to your known templates, basing default.html on the example in the docs.

Or you can point your flatpages to a specific, existing template with the additional options in the admin edit page for a flatpage.


The key statement is changing the SITE_ID in settings.py which has nothing to do with flatpages - it is a problem that new users run into when launching into the 'admin' and adding (say) '127..0.0.1' to the sites menu ( an addition to the default 'example.com' ) In trying to get everything else right, it is easy to overlook making SITE_ID = 2. Make 'locahost' the default - get rid of the default tripwire. Glad I came across this! Bob

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜