10

Djangoでサイトマップ生成を有効にしたいので、ここで説明したように次のようにします

モデル:

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'),
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 に答える