Настройка карты сайта с помощью Django - PullRequest
0 голосов
/ 29 июля 2011

У меня проблемы с картами сайта.

urls.py

from django.contrib import sitemaps
from oportunidade.views import OportunidadeSitemap
sitemaps = {'oportunidade': OportunidadeSitemap}
...
    url(r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}),

views.py

...
class OportunidadeSitemap(Sitemap):
    changefreq = "never"
    priority = 0.5

    def items(self):
        return Oportunidade.objects.filter(ativo=True)

    def lastmod(self, obj):
        return obj.ultima_alteracao 

Но я получаю следующую ошибку при доступе к http://localhost:8000/sitemap.xml Объект 'Oportunidade' не имеет атрибута 'get_absolute_url'

Вот моя модель "Oportunidade":

class Oportunidade(models.Model):

    user = models.ForeignKey(User)    

    titulo = models.CharField('Titulo',max_length=31)

 ...
    def __unicode__(self):
        return self.titulo

Я очень запутался, как установить карту сайта.

Ответы [ 2 ]

1 голос
/ 29 июля 2011

Пожалуйста, ознакомьтесь с Ссылка на класс карты сайта Django .Несмотря на то, что вы реализуете необходимый метод items, похоже, вам не хватает либо метода (или атрибута) location в вашей карте сайта, либо метода get_absolute_url в классе модели.

Если location не предоставлено, платформа будет вызывать метод get_absolute_url() для каждого объекта, возвращаемого items ().

Самый простой путьвперед будет реализовать get_absolute_url() в вас Oportunidade модель класса.

1 голос
/ 29 июля 2011

По документам: https://docs.djangoproject.com/en/1.3/ref/contrib/sitemaps/#sitemap-class-reference

Если вы не предоставите местоположение для класса sitemap, он будет искать get_absolute_url для каждого объекта.

Итак, вам нужно либо указать свойство location в вашем классе карты сайта, либо get_absolute_url для вашего объекта. Это должно помочь вам.

...