0

我在 Django 中为我的网站创建了站点地图,如下所示

网站地图

class MyModelSitemap(Sitemap):
    changefreq = "daily"
    priority = 0.5

    def items(self):
        return MyModel.objects.all()

    def lastmod(self, obj):
        return datetime.datetime.today()

网址.py

sitemaps = {
    'mymodel': MyModelSitemap,
    }

get_absolute_link()也被实施为MyModel

问题是使用了许多其他 URL,MyModel因此不可能只有一个absolute_link

我需要根据不同的查询向站点地图提供许多其他 URL MyModel

我怎样才能做到这一点?

4

1 回答 1

1

简单的方法是创建额外的站点地图:

class MyModelAdditionalLinkSitemap(MyModelSitemap):
    def location(self, obj):
        return obj.get_additional_link()

网址.py

sitemaps = {
    'mymodel': MyModelSitemap,
    'mymodel2': MyModelAdditionalLinkSitemap
}

添加:

我只想使用一个Sitemap类,请尝试以下操作:

import itertools

class MyModelSitemap(Sitemap):
    changefreq = "daily"
    priority = 0.5

    def items(self):
        product = itertools.product(MyModel.objects.all(), xrange(2))
        return list(product)

    def location(self, obj):
        if (obj[1] == 1):
            return obj[0].get_additional_link()
        return obj[0].get_absolute_link()

    def lastmod(self, obj):
        return datetime.datetime.today()
于 2012-11-28T10:22:47.610 回答