Раньше схема была: описываешь класс, наследник от django.contrib.syndication.feeds.Feed и указываешь на него вьюшке django.contrib.syndication.views.feed.
Которая в свою очередь описывалась в урлах примерно так
urlpatterns = patterns('',
# ...
(r'^feeds/(?P<url>.*)/$', 'django.contrib.syndication.views.feed',
{'feed_dict': {'products': ProductEntries}}),
# ...
)
Эту схему упростили, убрав этап вьюшки, теперь класс наследник от Feed сам явдяется вьюшкой.
Собственно он и переехал в django.contrib.syndication.views.Feed.
Так же поменялся метод get_object, теперь первым аргументом у него идет реквест.
class BeatFeed(Feed):
def get_object(self, request, beat_id):
return get_object_or_404(Beat, pk=beat_id)
def items(self, obj):
return Crime.objects.filter(beat=obj).order_by('-crime_date')[:30]
Где beat_id - это агрумент полученный регуляркой из урла
(r'^beats/(?P<beat_id>\d+)/rss/$', BeatFeed())
Явный плюс новой схемы, это избавление от упячистого дикта с пустым ключом, если на сайте только 1 фидд.
django_feed(request, url='', feed_dict={'': ImagesFeed})
Комментариев нет:
Отправить комментарий