Django framework de syndication: Comment puis-je utiliser les nouvelles vues d'alimentation à base de classe?

StackOverflow https://stackoverflow.com/questions/3174556

Question

Django 1.2 a apporté quelques changements dans le cadre de la syndication. Selon cette , je devrait maintenant être en mesure de faire quelque chose comme:

from django.conf.urls.defaults import *
from myproject.feeds import LatestEntries, LatestEntriesByCategory

urlpatterns = patterns('',
    # ...
    (r'^feeds/latest/$', LatestEntries()),
    (r'^feeds/categories/(?P<category_id>\d+)/$', LatestEntriesByCategory()),
)

Mais quand j'essaie de faire quoi que ce soit le long de ces lignes, je reçois une erreur:

  

init () prend exactement trois arguments (1 donnée)

Quelqu'un peut-il me donner un exemple de travail? Ou peut-être quelqu'un comprend ce que cette erreur concerne?

Edit # 1

L'exemple ci-dessus est en fait à partir du lien Django Advent. J'ai essayé une variété de choses et tous Spout la même erreur. Mais un exemple simple non-travail serait:

urls.py

urlpatterns = patterns('',
    url(r'^feeds/comments/$', LatestCommentsFeed()),
)

feeds.py

class LatestCommentsFeed(Feed):
    description = "Latest comments left at %s" % current_site.name
    feed_type = Atom1Feed
    link = "/feeds/comments/"
    title = "%s: Latest comments" % current_site.name

    def items(self):
        return Comment.objects.filter(is_public=True).order_by('-submit_date')[:50]

    def item_pubdate(self,item):
        return item.submit_date

    def item_guid(self,item):
        return "tag:%s,%s:%s" % (current_site.domain,
                                 item.submit_date.strftime('%Y-%m-%d'),
                                 item.get_absolute_url())
Était-ce utile?

La solution

Ok, a trouvé le coupable! :) Dans mon feeds.py j'avais:

from django.contrib.syndication.feeds import Feed

Et j'aurais dû:

from django.contrib.syndication.views import Feed

Le module django.contrib.syndication.feeds est là uniquement pour la compatibilité ascendante apparemment.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top