【问题标题】:django get_object() takes exactly 2 arguments (3 given) with custom feedsdjango get_object() 只需要 2 个参数(给定 3 个)和自定义提要
【发布时间】:2015-02-18 15:32:45
【问题描述】:

我正在学习《Learning Website Development with Django》一书中的自定义 Feed 示例,并学习从旧版本到 Django 1.7 的必要更改。

我得到的提要类是:

class UserBookmarks(Feed):

    def get_object(self,bits):
        if len(bits) != 1:
            raise ObjectDoesNotExist
        return User.objects.get(username=bits[0])

    def title(self,user):
        return 'Django Bookmarks | Bookmarks for %s' % user.username

    def link(self,user):
        return '/feeds/user/%s/' % user.username

    def description(self,user):
        return 'Recent bookmarks posted by %s' % user.username

    def items(self,user):
        return user.bookmark_set.order_by('-id')[:10]

还有网址配置:

urlpatterns = patterns('',
      url(r'^feeds(\w*)/$',UserBookmarks()),
)

当我刷新站点时,Django 给了我一个 TypeError: get_object() 只需要 2 个参数(给定 3 个)

我不知道问题出在哪里...请帮忙!

【问题讨论】:

  • 上传调用get_object()的代码(并得到错误)
  • @DRC 的回答将解决您的直接问题,但我强烈建议您使用不同的书来学习 Django。 'Learning Website Development with Django' 是从 2008 年开始的。从那时起,Django 发生了很多变化。例如,在此处导致您出现问题的联合提要框架的更改来自 2010 年的 Django 1.2。
  • 谢谢Alasdiar,有什么好书可以推荐吗?
  • @browser 自从我学习 Django 已经有几年了,所以我真的没有任何当前的建议。如果您还没有完成,官方教程是最好的起点。 Two Scoops 是一本很好的中级书。 Tango with Django 好像挺火的,不过没看过。祝你好运!

标签: python django feed


【解决方案1】:

将 get_object 签名更新为

def get_object(self, request, bits):

【讨论】:

    猜你喜欢
    • 2011-08-12
    • 2016-03-25
    • 2014-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-06
    • 2016-07-22
    • 1970-01-01
    相关资源
    最近更新 更多