Django联合框架:如何使用新的基于类的供稿视图?
-
02-10-2019 - |
题
Django 1.2带来了联合框架的一些变化。根据 这, ,我现在应该能够做类似的事情:
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模块显然仅用于向后兼容。
不隶属于 StackOverflow