私のsitemap.xmlファイルは、私のアプリのすべてのURLを表示しています。しかし、私のドメインのメインの /-url (root-url) は、アプリではないため、sitemap.xml にありません。メインページのモデルはありません。しかし、sitemap.py (以下を参照) でわかるように、モデルと、サイトマップにエントリを作成するための何かを返すアプリが必要です。しかし、私のメインページにはデータベースに参照データがないため、何を返せばよいかわかりません。
その問題をどのように解決すればよいですか?[flatpages を試してみましたが、django-flatpages も役に立ちませんでした。なぜなら、admin-interface に URL "/" でページを作成するように指示できなかったため、"/about/temp.html/" のようなものが必要だったからです。 ]
私のプロジェクトディレクトリは次のようになっています:
プロジェクト名/app1 /app2 /app3 設定.py local_settings.py サイトマップ.py 等...
サイトマップ.py
from django.contrib.sitemaps import サイトマップ app1.model から ModelX をインポート from app2.models import ModelY クラス SitemapApp1(Sitemap): 優先度 = 0.5 デフアイテム(自分): ModelX.objects.all() を返す クラス SitemapApp2(Sitemap): 優先度 = 0.5 デフアイテム(自分): ModelY.objects.all() を返す
私が試したのは、models.py を含む main というアプリを作成したことです。そして、このモデルでは、何かを返すことができるように、メイン/ URLのモデルを今すぐ持つために、何か愚かなことをしたかったのです。
クラスメイン(models.Model): name = models.CharField(max_length=64, unique=False, blank=True) def __unicode__(自己): self.name を返す
プロジェクト名/app1 /app2 /app3 /主要 models.py __init__.py 設定.py local_settings.py 等 サイトマップ.py
sitemap.py 新規
from django.contrib.sitemaps import サイトマップ app1.model から ModelX をインポート from app2.models import ModelY from main.models import Main クラス SitemapApp1(Sitemap): 優先度 = 0.5 デフアイテム(自分): ModelX.objects.all() を返す クラス SitemapApp2(Sitemap): 優先度 = 0.5 デフアイテム(自分): ModelY.objects.all() を返す クラス SitemapMain(Sitemap): 優先度 = 0.5 デフアイテム(自分): Main.objects.all() を返す
はい、サーバーを再起動しました。domain.com/sitemap.xml にアクセスしてもエラーは発生しませんが、sitemap.xml の domain.com-entry も表示されません。
ですから、domain.com/ root を sitemap.xml に取得するという私の愚かなアプローチに対して、はるかに優れた解決策があると確信しています。
あなたの助けに感謝します。よろしくお願いします!
sc