Django flatpages没有注册创建FlatPageSitemap

时间:2014-04-09 07:59:06

标签: django sitemap django-flatpages

我似乎无法为我的网站注册平面页面,因此无法使我的sitemap.xml for flatpages工作。我有以下文件:

settings.py:

MIDDLEWARE_CLASSES = (
    ...
    'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
    ...
)

INSTALLED_APPS = (
    ...
    'django.contrib.sites',
    'django.contrib.sitemaps',
    'django.contrib.flatpages',
    ...
)

SITE_ID = 1

urls.py(该项目的主要urls.py文件,我的应用程序名为' shoes'):

from django.contrib.sitemaps import FlatPageSitemap

sitemaps = {
    'shoes': FlatPageSitemap
}

urlpatterns = patterns('',
    url(r'^', include('shoes.urls', namespace='shoes')),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}),
)

urls.py for my' shoes'应用程式:

from django.conf.urls import patterns, url
from shoes import views

urlpatterns = patterns('',
    url(r'^$', views.index, name='index'),
    url(r'^homepage/$', views.home, name='home'),
    url(r'^detail-page/$', views.detail, name='detail'),
)

我已经运行了syncdb,但管理员中的flatpages部分仍然是空白的,没有任何条目,因此站点地图不会注册它们。如何才能将这些平面页(' home'和'详细信息')注册?

1 个答案:

答案 0 :(得分:0)

Flatpages应用程序用于动态创建flatpages。您可以在django admin中添加flatpages,它们将自动添加到#34;到网址

当您使用FlatpageFallbackMiddleware时,在所有其他选项(如urls.py中的视图)给出404响应后,flatpages会被解析。然后中间件检查数据库中的URL,如果找到匹配,则响应该页面。

您没有添加任何flatpages,因此您的db / admin / sitemap不会显示任何内容。