4

我的 sitemap.xml 文件显示了我的应用程序的每个 url,因为它应该做。但我的域的主 /-url (root-url) 不在 sitemap.xml 中,因为它不是应用程序。并且主页没有模型。但正如您在 sitemap.py 中看到的(见下文),需要一个模型和一个应用程序来返回一些内容以在站点地图中创建条目。但是我的主页在数据库中没有引用数据,所以我不知道要返回什么。

我应该如何解决这个问题?[我尝试使用 flatpages,但 django-flatpages 也没有帮助我,因为我无法告诉管理界面创建一个带有 url“/”的页面,它想要像“/about/temp.html/”这样的东西。 ]

我的项目目录看起来与此类似:

项目名称/app1
           /app2
           /app3
           设置.py
           local_settings.py
           站点地图.py
           ETC...

站点地图.py

从 django.contrib.sitemaps 导入站点地图
从 app1.models 导入 ModelX
从 app2.models 导入 ModelY

类 SitemapApp1(站点地图):
    优先级 = 0.5

    def 项目(自己):
        返回 ModelX.objects.all()

类 SitemapApp2(站点地图):
    优先级 = 0.5

    def 项目(自己):
        返回 ModelY.objects.all()

我尝试过的是:我创建了一个名为 main 的应用程序,其中包含一个 models.py。在这个模型中,我想做一些愚蠢的事情,只是为了现在有一个用于主 / url 的模型,能够返回一些东西。

主类(模型。模型):
    name = models.CharField(max_length=64, unique=False, blank=True)

    def __unicode__(self):
        返回 self.name
项目名称/app1
           /app2
           /app3
           /主要的
                模型.py
                __init__.py
           设置.py
           local_settings.py
           等等
           站点地图.py

站点地图.py 新

从 django.contrib.sitemaps 导入站点地图
从 app1.models 导入 ModelX
从 app2.models 导入 ModelY
从 main.models 导入 Main

类 SitemapApp1(站点地图):
    优先级 = 0.5

    def 项目(自己):
        返回 ModelX.objects.all()

类 SitemapApp2(站点地图):
    优先级 = 0.5

    def 项目(自己):
        返回 ModelY.objects.all()

类站点地图主(站点地图):
    优先级 = 0.5

    def 项目(自己):
        返回 Main.objects.all()

没错,重启了服务器。好吧,当我转到 domain.com/sitemap.xml 时它不会给我一个错误,但我也没有在 sitemap.xml 中显示 domain.com-entry 。

所以我敢肯定,对于我将 domain.com/ root 放入 sitemap.xml 的愚蠢方法,您有一个更好的解决方案。

感谢您的帮助。提前非常感谢!

sc

4

1 回答 1

3

你可以尝试修改我从这里得到的这个例子:

class MainSitemap(Sitemap):

    def items(self):
      return [self]

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