Django Google News sitemap.xml

hlasů
0

Snažím se vybudovat z ní Sitemap pro Zprávy Google se kromě normálního sitemap.xml, aby nemuseli dát další číselné znaky v mých URL.

Mám postavit se na sitemap.xml pomocí contrib systém Django a funguje to skvěle, ale mám problémy s předáním kontext k (neověřené) náplast aktualizovat rámec pro gererate si news_sitemap.xml.

Toto je oprava jsem integrovaná: http://code.djangoproject.com/ticket/10907 , ale kontext je neprochází. Myslím, že problém je s formátem jsem s použitím stavět objekt v mém views.py.

Kód jsem běh:

views.py

from django.template import RequestContext
from django.shortcuts import render_to_response
from basic.blog.models import Post
from pages.models import Page
from datetime import date, datetime
from django.contrib.sitemaps import Sitemap, NewsSitemap

'''Builds the sitemap.xml section for all news posts.'''
class PostSitemap(Sitemap):
    changefreq = daily
priority = 0.3
def items(self):
    return Post.objects.published()
def lastmod(self, obj):
    return obj.modified

'''Builds the sitemap.xml section for all main pages.'''
class PageSitemap(Sitemap):
changefreq = daily
priority = 0.8
def items(self):
    return Page.objects.filter(status=1)
def lastmod(self, obj):
    return obj.last_modification_date

'''Builds the news_sitemap.xml from blog module.'''
class SiteappNews(Sitemap):
def items(self):
    return Post.objects.published()
def publication_date(self, obj):
    return obj.publish

urls.py

from django.conf.urls.defaults import *
from django.contrib.sitemaps import Sitemap, FlatPageSitemap, NewsSitemap
from siteapp.views import homepage, news_homepage, qc_contact, PostSitemap, PageSitemap, SiteappNews
from basic.blog.feeds import *
from basic.blog.models import Post
from pages.models import Page

''' Enables Django Admin.'''
from django.contrib import admin
admin.autodiscover()

'''Add Feeds functionality.'''
feeds = {
'latest': BlogPostsFeed,
}

'''http://docs.djangoproject.com/en/1.0/ref/contrib/sitemaps/'''
sitemaps = {
'pagesitemap': PageSitemap,
'postsitemap': PostSitemap,
'flatpages': FlatPageSitemap,
}

news_sitemaps = {
'newssitemap': NewsSitemap,
}

urlpatterns = patterns('',
(r'^admin/doc/', include('django.contrib.admindocs.urls')),
(r'^admin/(.*)', admin.site.root),
(r'^sitemap.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}),
(r'^news_sitemap.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': news_sitemaps, 'template': 'news_sitemap.xml'}),

Šablony výstupy jen obal. Mám něco chybí zřejmý Myslím, že i když tam může být problém s náplasti aplikované. Zde je příslušný kód, který:

Uvnitř sitemaps contrib init .py

class NewsSitemap(Sitemap):
# This limit is defined by Google. See the index documentation at
# http://www.google.com/support/webmasters/bin/answer.py?hl=en&answer=74288
limit = 1000
def get_url_info(self, item, current_site):
    url_info = super(NewsSitemap, self).get_url_info(item, current_site)
    url_info.update({
        'publication_date': self._get('publication_date', item, None),
        'keywords': self._get('keywords', item, None),
    })
    return url_info
Položena 19/08/2009 v 10:38
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
1

Řazeny tenhle ven sám po malém kopání.

Změnili urls.py řádky:

news_sitemaps = {
    'newssitemap': SiteappNews,
}

A změnil kód views.py postavit se příslušná Zprávy Google polí z vlastního modulu.

Yours bude lišit budoucí čtenáře (ahoj!), Ale bude to něco jako:

class SiteappNews(Sitemap):
    def items(self):
        return Post.objects.published()
    def publication_date(self, obj):
        return obj.publish
    def keywords(self, obj):
        return obj.tags

zkontrolujte SQL pole pro své modely, aby sub v správná data pro ‚publikovat‘, ‚značky‘, atd.

Odpovězeno 18/09/2009 v 14:33
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more