إطار عمل Syndication Django: كيف يمكنني استخدام طرق عرض التغذية الجديدة القائمة على الفصل؟

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

سؤال

جلب Django 1.2 بعض التغييرات في إطار syndication. وفق هذه, ، يجب أن أكون قادرًا الآن على فعل شيء مثل:

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

لكن عندما أحاول أن أفعل أي شيء على هذه الخطوط ، أحصل على خطأ:

فيه() يأخذ بالضبط 3 وسيطات (1 معطى)

هل يمكن لأي شخص أن يعطيني مثالاً يعمل؟ أو ربما يفهم شخص ما ما يرتبط به هذا الخطأ؟

تحرير #1

المثال أعلاه هو في الواقع من رابط Django Advent. لقد جربت مجموعة متنوعة من الأشياء وكلها تنفجر نفس الخطأ. لكن مثالًا بسيطًا غير يعمل هو:

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())
هل كانت مفيدة؟

المحلول

حسنًا ، وجدت الجاني! :) في خلاصاتي. كان لدي:

from django.contrib.syndication.feeds import Feed

وكان يجب أن يكون لدي:

from django.contrib.syndication.views import Feed

وحدة django.contrib.syndication.feeds موجودة فقط للتوافق مع الوراء على ما يبدو.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top