Frage

Django 1.2 hat sich in einigen Veränderungen in der Syndizierung Rahmen gebracht. Nach dies ich nun in der Lage sein sollte, wie etwas zu tun:

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()),
)

Aber wenn ich versuche, etwas in diese Richtung zu tun, ich erhalte eine Fehlermeldung:

init () nimmt genau 3 Argumente (1 angegeben)

Kann jemand geben Sie mir ein funktionierendes Beispiel? Oder vielleicht jemand versteht, was dieser Fehler bezieht sich auf?

Edit # 1

Das obige Beispiel ist eigentlich aus dem Django Advent Link. Ich habe eine Vielzahl von Dingen versucht, und alle von ihnen Auslauf der gleichen Fehler. Aber eine einfache, nicht funktionierendes Beispiel wäre:

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())
War es hilfreich?

Lösung

Ok, die Schuldigen gefunden! :) In meinem feeds.py ich hatte:

from django.contrib.syndication.feeds import Feed

Und ich sollte gehabt haben:

from django.contrib.syndication.views import Feed

Das django.contrib.syndication.feeds Modul gibt es nur für die Abwärtskompatibilität offenbar.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top