【问题标题】:how do I add homepage to Django sitemap?如何将主页添加到 Django 站点地图?
【发布时间】:2015-06-30 08:14:25
【问题描述】:

给定站点地图类的站点地图会在该位置生成站点地图,example.com/sitemap.xml

从 django.contrib.sitemaps 导入站点地图 从 blog.models 导入条目 对于给定的站点地图类,

class BlogSitemap(Sitemap):
    changefreq = "never"
    priority = 0.5

    def items(self):
        return Entry.objects.filter(is_draft=False)

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

生成的站点地图包含博客模型中的所有对象,但不包含查询集之外的内容,如何将主页添加到站点地图?

网址

from django.contrib.sitemaps.views import sitemap
from blog.sitemaps import BlogSitemap


sitemaps = {
    'blog': BlogSitemap
}
urlpatterns = [
    url(r'^$', 'blog.views.home'),
    url(r'^sitemap\.xml$', sitemap, {'sitemaps': sitemaps},
        name='django.contrib.sitemaps.views.sitemap'),
]

【问题讨论】:

标签: python django sitemap django-sitemaps


【解决方案1】:

创建sitemap for static views

class StaticViewSitemap(sitemaps.Sitemap):
    priority = 0.5
    changefreq = 'daily'

    def items(self):
        return ['home']

    def location(self, item):
        return reverse(item)

这假设您有名称为“home”的主页的 url 模式

url(r'^$', views.homepage, name="home"),

然后将StaticViewSitemap 添加到您的urls.py 中的sitemaps 字典中。

sitemaps = {
    'blog': BlogSitemap,
    'static': StaticViewSiteMap,
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    相关资源
    最近更新 更多