仅将具有记录的URL添加到站点地图

时间:2010-11-30 16:39:37

标签: django sitemap

我正在尝试添加一些自定义网址,这些网址都链接到一个视图,传递的参数不同。作为一个例子,我将有几个URL来提取具有特定品牌的所有记录,因此它将是<root_url>/vehicles/inventory/<make>。如果要确保URL实际返回某些记录,我想做什么...只有那些需要转到站点地图。

以下是我在特定年份为所有品牌完成课程的方法(但有些网址没有返回任何工具,我想要消除它。)

class YearMakeSitemap(Sitemap):
  priority = 1.0
  changefreq = 'weekly'

  def items(self):
    makes = query.order_by('manufacturer_popularity', 'manufacturer').values_list
            ('manufacturer', flat = True)
    years = query.order_by('year').values_list('year', flat = True)
    url = []

    for make in makes:
        for year in years:
            url.append('%s/%s' % (make, year))

    return url

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

  def location(self, obj):
    return '/vehicles/inventory/%s/' % obj

如何使站点地图文件只包含至少返回一条记录的网址而不是我目前的情况?

1 个答案:

答案 0 :(得分:0)

如何进行此更改?

for make in makes:
    for year in years:
        if query.filter(year=year,manufacturer=make).count() > 0:
            url.append('%s/%s' % (make, year))

但我认为更有效的答案是:

query.order_by( “manufacturer_popularity”, “制造商”, “年”)。值( “制造商”, “年”)。不同的()

并遍历该列表。