4

私の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

4

1 に答える 1

3

here から取得したこの例を試して変更できます。

class MainSitemap(Sitemap):

    def items(self):
      return [self]

    location = "/"
    changefreq = "monthly"
    priority = "1"
于 2011-03-03T01:44:50.200 に答える