2014-04-09 32 views
0

我似乎無法讓我的網站的flatpages註冊,因此無法讓我的sitemap.xml也能讓flatpage工作。我有以下文件:Django的頁面沒有註冊創建FlatPageSitemap

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文件,我的應用程序被命名爲 '鞋'):

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我的「鞋」的應用程序:

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'和'detail')註冊?

回答

0

Flatpages應用程序用於動態創建頁面。您可以在django admin中添加頁面,並且它們會自動「添加」到網址中。

當您使用FlatpageFallbackMiddleware時,在所有其他選擇(如urls.py中的視圖)給出404響應後,解析頁面被解析。然後中間件檢查數據庫中的URL,如果它發現匹配,它就會響應該頁面。

你沒有添加任何頁面,所以你的db/admin/sitemap不顯示任何內容。