1

我正在尝试使用 Django 站点地图。

class BlogSiteMap(Sitemap):
    """A simple class to get sitemaps for blog"""

    changefreq = 'hourly'
    priority = 0.5

    def items(self):
        return Blog.objects.order_by('-pubDate')

    def lastmod(self, obj):
        return obj.pubDate

我的问题是..我想将前 3 个博客对象的优先级设置为 1.0,其余的设置为 0.5 优先级。

我阅读了文档,但无法摆脱它。

任何帮助都是不言而喻的。提前致谢。

4

2 回答 2

1

我认为您可以更改每个对象的优先级。比如这样:

def items(self):
    for i, obj in enumerate(Blog.objects.order_by('-pubDate')):
       obj.priority = i < 3 and 1 or 0.5
       yield obj

def priority(self, obj):
    return obj.priority
于 2009-04-18T15:02:47.223 回答
0

类似的东西可能会起作用:

def priority(self, obj):
    if obj.id in list(Blog.objects.all()[:3].values_list('id'))
        return 1.0
    else:
        return 0.5
于 2009-05-22T15:23:40.670 回答