0

我正在生成一个站点地图,但该站点地图所针对的网站具有不同的 URL 路由和不同的域。

我认为覆盖location方法会起作用,但问题是 Django 会Site在每个 url 之前自动添加 url。

http://example.comhttps://thewebsite.com...


<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url><loc>http://example.comhttps://thewebsite.com/article/123/slug</loc><lastmod>2021-05-10</lastmod>
         <changefreq>hourly</changefreq><priority>0.5</priority>
    </url>
</urlset>
class WebsiteSitemap(Sitemap):
    changefreq = "hourly"
    priority = 0.5

    def items(self) -> typing.List:
        items = []
        items.extend(Article.objects.home())
        return items

    def location(self, obj: typing.Union[Article]):
        return obj.website_full_url

    def lastmod(self, obj: typing.Union[Article]) -> datetime:
        return obj.modified

有没有办法告诉 Django 不要自动构建 URL?

4

1 回答 1

1

我通过构建自定义模板标签解决了这个问题。我使用该标签来替换URL站点地图模板中的。

于 2021-07-25T20:31:17.973 回答