无法连接'str'和'NoneType'对象Django sitemap

时间:2013-11-23 22:14:36

标签: python django-sitemaps

例外值:

无法连接'str'和'NoneType'对象

class BrandSitemap(Sitemap):
    def items(self):
        return Page.objects.filter(parent__title=u'Бренды').values(
            'short_url', 'publish_date')

    def location(self, obj):
        return '/brand/' + obj['short_url']

    def lastmod(self, obj):
        return obj['publish_date']

如何清除网址末尾的obj ['short_url']所有数字?例如:之前:agent-provocateur-1之后:agent-provocateur

def location(self,obj):     return'/ brand /'+ str(obj ['short_url'])

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

if 'short_url' in obj:
   return '/brand/' + obj['short_url']
else:
   return '/error/'  # missing short_url so this may be an error you need to handle

可以缩短为

return '/brand/' + obj['short_url'] if 'short_url' in obj else '/error/'

你还有obj['publish_date']</i>,我无法判断这是不是一个错字,或者你真的想把它放在那里......

但是,你应该看一下你的obj中应该填充short_url的内容 - 你可能会把事情搞乱,或者没有填充你认为的东西。