Linux is working. The future is open.
В этой статье Вы не получите глубокое рассмотрение всего модуля к Django, со всеми фичами. Для этого можно обратиться к примеру сюда: http://djbook.ru/ch11s05.html, а здесь как бы Quick Start, чтобы быстро, просто и работоспособно.
И так! Для начала правим urls.py, чтобы назначить адрес, по кторому открывается RSS-трансляция.
urls.py:
from blog.views import LatestPosts ... url(r'^rss/$', LatestPosts()),
Далее идем во вьюшку. Пишем там класс:
from django.contrib.syndication.views import Feed class LatestPosts(Feed): title= "eth0.pro" link= "/" description= "Последние статьи на сайте eth0.pro" def items(self): # Не забываем указать свою модель: return models.Post.objects.filter(pub=True).order_by('-date')[:5] def item_title(self, item): """ Функция возвращает заголовок статьи """ return item.title def item_description(self, item): """ А эта функция возвращает текст статьи (весь не обязательно!) return item.text
Вместо функций, возвращающих title и description, можно использовать шаблоны, тогда класс будет выглядеть следующим образом:
class LatestPosts(Feed): title= "eth0.pro" link= "/" description= "Последние статьи на сайте eth0.pro" title_template = "rss_title.html" description_template = "rss_description.html" def items(self): return models.Post.objects.filter(pub=True).order_by('-date')[:20]
Не забываем создать сами шаблоны. В них будет передаваться контекст {{ obj }}, содержащий одну из items (запись вашей модели).
rss_title.html
{{ obj.title }}
rss_description.html
{{ obj.text|safe|truncatewords:100 }}
Открываем http://eth0.pro/rss/ и наслаждаемся. Voila!
5 фев 2013 г. | Теги: Django