English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O Django possui uma estrutura de feed de agregação. Com ele, você pode criar RSS ou Atom apenas herdando a classe django.contrib.syndication.views.Feed.
Vamos criar uma aplicação de fonte de inscrição.
# Nome do Arquivo : example.py # Copyright : 2020 Por w3codebox # Autor por: pt.oldtoolbag.com # Data : 2020-08-08 from django.contrib.syndication.views import Feed from django.contrib.comments import Comment from django.core.urlresolvers import reverse class DreamrealCommentsFeed(Feed): title = "Comentários do Dreamreal" link = "/drcomments/" description = "Atualizações sobre novos comentários na entrada Dreamreal." def items(self): return Comment.objects.all().order_by("-submit_date)[:5] def item_title(self, item): return item.user_name def item_description(self, item): return item.comment def item_link(self, item): return reverse('comment', kwargs = {'object_pk': item.pk})
No feed, os atributos title, link e description correspondem aos elementos <title>, <link> e <description> do RSS padrão.
O método entry retorna os elementos que devem entrar no feed. Em nosso exemplo, são os últimos cinco comentários.
Agora, temos o feed e adicionamos comentários na view views.py para exibir nossos comentários-
# Nome do Arquivo : example.py # Copyright : 2020 Por w3codebox # Autor por: pt.oldtoolbag.com # Data : 2020-08-08 from django.contrib.comments import Comment def comment(request, object_pk): mycomment = Comment.objects.get(object_pk = object_pk) text = '<strong>Usuário:</strong> '</<strong>%s</strong> <p>'%mycomment.user_name</p> text +<strong>Comentário:</strong> '</strong>%s<p>'%mycomment.comment</p> return HttpResponse(text)
Precisamos de algumas URLs mapeadas no myapp/urls.py -
# Nome do Arquivo : example.py # Copyright : 2020 Por w3codebox # Autor por: pt.oldtoolbag.com # Data : 2020-08-08 from myapp.feeds import DreamrealCommentsFeed from django.conf.urls import patterns, url urlpatterns += patterns('', url(r'^latest/comments/', DreamrealCommentsFeed()), url(r'^comment/(?P\w+)/', 'comment', name = 'comment'), )
ao acessar/myapp/latest/comments/Você receberá feed -
Ao clicar em um dos nomes de usuário, você receberá:/myapp/comment/comment_id antes da definição da sua visão de comentários, receberá -
Portanto, defina uma fonte RSS como subclasse da classe Feed e certifique-se de que essas URLs (uma para acessar o feed e uma para acessar os elementos do feed) estejam definidas. Como comentado, isso pode ser conectado a qualquer modelo do seu aplicativo.