Карта сайта Django с синтаксисом Новостей Google - PullRequest
0 голосов
/ 14 февраля 2019

В Django я использую django.contrib.sitemaps для создания базового файла sitemap.xml.

В настоящее время я хочу создать новый файл Sitemap для Новостей Google, но синтаксис должен быть изменен.И я действительно не знаю, как преобразовать этот шаблон:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<script id="tinyhippos-injected"/>
<url>
<loc>
http://www.url.com/
</loc>
<lastmod>2019-02-14</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
</urlset>

В этот шаблон новостей Google:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:n="http://www.google.com/schemas/sitemap-news/0.9">
  <url>
    <loc>http://example.com/</loc>
    <n:news>
      <n:publication>
        <n:name>News paper, blog or similar name</n:name>
        <n:language>en</n:language>
      </n:publication>
      <n:publication_date>2008-12-30T00:00:00+00:00</n:publication_date>
      <n:keywords>2008,news,xml,sitemap,example,keywords,generated</n:keywords>
      <n:title>News Article Title</n:title>
    </n:news>
  </url>
</urlset> 

sitemaps.py

from django.contrib.sitemaps import Sitemap
from wall.models import Articles
from datetime import timedelta
from django.utils import timezone

class ArticleSitemap(Sitemap): #Basic Sitemap
    changefreq = "daily"
    priority = 0.7

    def items(self):
        return Articles.objects.filter(published=True).order_by('-update')

    def lastmod(self, item): 
        return item.date

class NewsSitemap(Sitemap): #For Google News Sitemap
    changefreq = "daily"
    priority = 0.7

    def items(self):
        return Articles.objects.filter(published=True, date__range=[timezone.now() - timedelta(days=3), timezone.now()]).order_by('-update')

    def lastmod(self, item): 
        return item.date

MyВопрос в том, как вставить теги <n:news> и thehers childs?

Спасибо

...