2012-12-30 9 views
8

私はジャンゴでサイトマップ生成を有効にしたいので、私はそれがhereはget_absolute_url - Django`sサイトマップ

モデルで説明する方法は、以下の手順に従います

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

のURL:

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のみを使用できますか?私はそれらを使用しないので、私は 'flatpages'とコメントしました。ありがとう。

アップデート1:URLS.pyで :

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

答えて

12

あなたがモデルの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のリバース方式を更新してください。

+0

'car_details' - そのURLの一部(site.com/car_details)? – tim

+0

いいえ 'car_details'はURLの名前です。私はあなたにあなたのurls.pyでそれを定義している車のモデルのURLが必要なので、私はあなたにもっとあなたを助けることができるように 'urls.py'を投稿できますか? –

+0

ああ、ありがとう、私は[リンク](https://docs.djangoproject.com/en/dev/ref/models/instances/?from=olddocs#get-absolute-url)を読んで、あなたのコードは私を助けますが)私はreturn "/ car /%i /"%self.idとその作業を使用してください。ありがとう。 – tim

関連する問題