Blog w Django IV - Kanał RSS i Sitemap
14 July 2008
Comments
Na początek zajmiemy się polem "wykop". Otóż gdy nie podamy odnośnika (wartości) dla tego pola to przy newsie ma pojawić się odnośnik umożliwiający zgłoszenie wiadomości do wykopu. Gdy odnośnik jest podany to wyświetlamy go ze stosownym komunikatem. W szablonie show.html (podobnie w innych) wystarczy dać:
{% if news.wykop %}
<a href="{{ news.wykop }}">Głosuj na Wykopie</a>
{% else %}
<a href="http://www.wykop.pl/dodaj?url=http://www.MOJASTRONA.pl/news/{{ news.slug }}/" target="_blank">Dodaj na Wykop.pl</a>
{% endif %}
Django oferuje własny system do generowania kanałów RSS i map Sitemap. Zaczniemy od tego pierwszego tworząc plik /blog/news/feeds.py o kodzie:
from blog.news.models import *
from django.contrib.syndication.feeds import Feed
class LatestNews(Feed):
title = 'Wiadomości z MOJASTRONA.pl'
link = 'MOJASTRONA.pl'
description = 'Wiadomości z MOJASTRONA.pl'
def items(self):
return News.objects.order_by('-id')[:15]
def get_absolute_url(self):
return '/news/' + self.slug + '/'
from blog.news.feeds import *
feeds = {
'news': LatestNews,
}
(r'^rss/(?P<url>.*)/$', 'django.contrib.syndication.views.feed', {'feed_dict': feeds}),
{{ obj.title }}
Oraz news_description.html o kodzie:
{{ obj.text }}
I gotowe :) Nazwy szablonów w katalogu feeds mają "składnię" - NAZWA-KANAŁU_NAZWA-POLA.html, a rola szablonów to określenie jakie pola z modelu mają być wyświetlane w danym polu kanału RSS.By stworzyć mapę Sitemap używaną m.in. przez wyszukiwarkę Google do sprawniejszego indeksowania serwisów wystarczy... w pliku settings.py do INSTALLED_APPS dodać:
'django.contrib.sitemaps'
Do news/feeds.py dodać:
from django.contrib.sitemaps import Sitemap
class NewsMap(Sitemap):
def items( self ):
return News.objects.all()
def lastmod( self, obj ):
return obj.date
def changefreq(self, obj):
return 'monthly'
sitemaps = {
'news': NewsMap,
}
(r'^sitemap.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps})
I gotowe. Pod /sitemap.xml czeka gotowa mapa. Odnośnik podajemy na stronie Google Narzędzia dla Webmasterów. Otrzymamy system "statystyk" indeksowania naszej strony. Po dodaniu mapy będziemy musieli potwierdzić że nasza strona należy do nas - do sekcji HEAD strony będziemy musieli dodać odpowiedniego taga HTML. Gdy będziemy mieli to za sobą wszystko będzie działać zgodnie z planem. Mapa będzie regularnie sprawdzana przez wyszukiwarkę.Źródła
Pobierz źródłaPo rozpakowaniu edytuj ścieżkę w urls.py i settings.py a następnie stwórz tabele i superadmina.
RkBlog
Comment article