10

我想在 Django 中启用站点地图生成,所以我执行以下操作,这里如何解释

模型:

class Car(models.Model):
    def __unicode__(self):
            return self.name
    name = models.CharField('Name', max_length=10)
    active = models.BooleanField()

网址:

car_dict = {
    'queryset': Car.objects.filter(active=1),
}

sitemaps = {
    #'flatpages': FlatPageSitemap,
    'car': GenericSitemap(car_dict, priority=0.5),
}

但是我在 /sitemap.xml 上有一个错误:'Car' object has no attribute 'get_absolute_url。如何解决?我需要创建一些类,这里是如何解释的?或者我只能使用 GenericSitemap?我评论了“平面页面”,因为我不使用它们。谢谢。

更新 1:在 URLS.py 中:

url(r'^car/$', 'cars.views.shop'),
    url(r'^car/(?P<car_id>\d+)/$', 'cars.views.producer'),
4

1 回答 1

18

您必须为模型定义get_absolute_url

from django.core.urlresolvers import reverse

class Car(models.Model):
    name = models.CharField('Name', max_length=10)
    active = models.BooleanField()

    def __unicode__(self):
        return self.name

    def get_absolute_url(self):
        return reverse('car_details', kwargs={'name':self.name})

请根据您定义的 URL 更新 URL 反向方法。

于 2012-12-30T17:08:18.300 回答