get_absolute_url - Django的网站地图 [英] get_absolute_url - Django`s sitemap

查看:122
本文介绍了get_absolute_url - Django的网站地图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在Django中启用Sitemap生成功能,所以我执行以下操作,如何解释这里



型号:

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

但是我在/sitemap.xml上有一个错误:'Car'对象没有属性'get_absolute_url 。如何解决?我需要创建一些课程,它如何解释这里?或者我只能使用GenericSitemap?我评论平板,因为我不使用它们。谢谢。



更新1:URLS.py中的

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


解决方案

你必须定义<该模型的href =https://docs.djangoproject.com/en/1.9/ref/models/instances/#get-absolute-url> get_absolute_url :

  from django.core.urlresolvers import reverse 

class Car(models.Model):
name = models.CharField('名称',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反向方法。


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'),

解决方案

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.

这篇关于get_absolute_url - Django的网站地图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆