django:为多语言站点生成站点地图

Ole*_*nko 5 django

我创建了一个小文章站点。我正在使用 translema 以多种语言存储同一篇文章(它在数据库中创建选定字段的副本,以便可以翻译它们),在这种情况下如何生成站点地图?

(忘了说,我正在使用 localurl 应用程序,所以我的网址看起来像这样http://site/en)。

Dim*_*zis 6

要生成每种语言的站点地图,您可以使用如下内容:

from django.contrib.sitemaps import Sitemap
from pages.models import Page

class PageSitemap(Sitemap):
   priority = 0.5
   # this generates urls per language
   i18n = True

   def items(self):
     pages = Page.objects.filter(
        status=Page.PUBLISHED).order_by('-updated_at')
    return pages

   def lastmod(self, obj):
     return obj.updated_at
Run Code Online (Sandbox Code Playgroud)


Emi*_*röm 1

站点地图应用程序的工作原理是让您编写站点地图类,每个类都有一个 items 方法。您只需为您拥有的每种语言构建一个这样的类,并确保只为每个类查询具有该特定语言的模型。该文档有一个简单的站点地图示例来帮助您入门。