使用 Django 设置站点地图

发布于 2024-11-27 00:21:57 字数 1033 浏览 2 评论 0原文

我在使用站点地图时遇到一些问题。

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

我很困惑如何设置站点地图。

I am having some problems with sitemaps.

urls.py

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

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 

But I get the following error when I access http://localhost:8000/sitemap.xml
'Oportunidade' object has no attribute 'get_absolute_url'

Here is my "Oportunidade" model:

class Oportunidade(models.Model):

    user = models.ForeignKey(User)    

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

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

I am very confused how to set sitemap.

, 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}),

views.py

But I get the following error when I access http://localhost:8000/sitemap.xml
'Oportunidade' object has no attribute 'get_absolute_url'

Here is my "Oportunidade" model:

I am very confused how to set sitemap.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

谁的年少不轻狂 2024-12-04 00:21:57

请查看 Django 的站点地图类参考。尽管您实现了必要的 items 方法,但您似乎缺少站点地图中的 location 方法(或属性)或 get_absolute_url 模型类中的方法。

如果未提供 location,框架将对 items() 返回的每个对象调用 get_absolute_url() 方法。

最简单的方法是在 Oportunidade 模型类中实现 get_absolute_url()

Please take a look at Django's sitemap class reference. Although you implement the necessary items method, you seem to be missing either the location method (or attribute) in your sitemap or the get_absolute_url method in you model class.

If location isn't provided, the framework will call the get_absolute_url() method on each object as returned by items().

Easiest way to go forward would be to implement get_absolute_url() in you Oportunidade model class.

无所谓啦 2024-12-04 00:21:57

根据文档: https://docs.djangoproject .com/en/1.3/ref/contrib/sitemaps/#sitemap-class-reference

如果您没有为站点地图类提供位置,它将在每个站点上查找 get_absolute_url 目的。

因此,您需要在站点地图类上指定位置属性,或者在对象上指定 get_absolute_url。这应该能让你继续前进。

According to the docs: https://docs.djangoproject.com/en/1.3/ref/contrib/sitemaps/#sitemap-class-reference

If you don't provide a location for the sitemap class, it will look for get_absolute_url on each object.

So, you'll either need to specify a location property on your sitemap class, or get_absolute_url on your object. That should get you going.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文