django - 创建带有两个参数的站点地图类返回 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)
解决方案
好的,这就是我让它工作的方式:
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])
谢谢伊恩的小费!
推荐阅读
- python - 为python unittest设置全局变量时如何避免lint错误
- python - 我的 django 项目存在属性问题。我正在用这个代码做一个电子商务网站
- python - 如何使用非有序值制作第二个 python x 轴?
- corda - Corda - 记录事务中的特定状态
- c++ - 如何将字符串路径从'\'转换为'/'或'\\'?
- assembly - 如何在 ARM64 中初始化一个 16 位整数数组?
- objective-c - 强制 FileManager().copyItem(_:_) 超时
- python - 以编程方式选择不等式运算符
- oracle - 将多个选择语句插入表时看到错误
- php - 是否可以在 Joomla 中扩展扩展?