首页 > 解决方案 > 创建带有两个参数的站点地图类返回 URL

问题描述

我有一组项目 = [a,b,c]

我有一个页面,其中包含两个项目并进行比较。

所以 URL 看起来像这样:

http://127.0.0.1:8000/compare/a/b

http://127.0.0.1:8000/compare/a/c

http://127.0.0.1:8000/compare/b/c

我怎样才能制作一个站点地图类来代表所有这些?

*这是我的站点地图类,有一个参数

class ItemsSitemap(Sitemap):
    changefreq = "monthly"
    priority = 0.8

    def items(self):
        return Items.objects.order_by('id')

    def location(self, obj):
        return '/items/%s' % (obj.id)

标签: djangositemap

解决方案


好的,这就是我让它工作的方式:

from itertools import combinations    

class ComparisonSitemap(Sitemap):
    changefreq = "monthly"
    priority = 0.8

    def items(self):
        itemlist= Items.objects.order_by('id')
        itemids= itemlist.values_list('id',flat=True)
        pairs = list(combinations(itemids,2))
        return pairs

    def location(self,pairs):
        return '/comparison/{}/{}'.format(pairs[0],pairs[1])

谢谢伊恩的小费!


推荐阅读