get_absolute_url - Django`s sitemap

匿名 (未验证) 提交于 2019-12-03 02:56:01

问题:

I want to enable sitemap-generation in Django, so I do the following, how it explained here

model:

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

urls:

car_dict = {     'queryset': Car.objects.filter(active=1), }  sitemaps = {     #'flatpages': FlatPageSitemap,     'car': GenericSitemap(car_dict, priority=0.5), } 

But I have an error on /sitemap.xml: 'Car' object has no attribute 'get_absolute_url. How to fix it? I need to create some classes, how it explained here? Or I can use only GenericSitemap? I commented 'flatpages', because I dont use them. Thanks.

Update 1: in URLS.py:

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

回答1:

You have to define get_absolute_url for the model:

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}) 

Please update the URL reverse method according to the URL you have defined.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!