Kai
Kai

Reputation: 2325

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.CommonMiddleware',
    '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?

Upvotes: 4

Views: 1320

Answers (3)

bobbice
bobbice

Reputation: 11

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

Upvotes: 1

Kai
Kai

Reputation: 2325

I found it.

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

Upvotes: 4

Steve Jalim
Steve Jalim

Reputation: 12195

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.

Upvotes: 2

Related Questions