0

サイトを登録するためのフラットページを取得できないようです。そのため、フラットページ用の sitemap.xml を取得することもできません。次のファイルがあります。

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:

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 セクションが空白のままでエントリがないため、サイトマップに登録されません。これらのフラットページ (「ホーム」と「詳細」) を登録するにはどうすればよいですか?

4

1 に答える 1

0

Flatpages アプリは、フラットページを動的に作成するためのものです。django admin でフラットページを追加すると、それらは自動的に URL に「追加」されます

FlatpageFallbackMiddleware を使用している場合、フラットページは、他のすべての選択肢 (urls.py のビューなど) が 404 応答を返した後に解決されます。次に、ミドルウェアはデータベース内の URL をチェックし、一致する場合はそのページで応答します。

フラットページを追加しなかったため、db/admin/sitemap には何も表示されません。

于 2014-07-02T12:02:40.980 に答える