UpdateView - 对象没有属性'对象

时间:2015-06-06 02:23:00

标签: python django django-views

我想验证更新帖子的用户是帖子的作者。

我的代码看起来像这样(相关部分):

class UpdatePostView(UpdateView):
    model = Post
    fields = ['body']
    template_name = 'forum/post_update_form.html'

    def dispatch(self, *args, **kwargs):
        if self.request.user != self.object.author:
            return HttpResponseForbidden()
        return super(CreatePostView, self).dispatch(*args, **kwargs)

我得到的错误:

'UpdatePostView' object has no attribute 'object'

此时,我有点困惑,因为文档说:When using UpdateView you have access to self.object, which is the object being updated.

我错过了什么?

1 个答案:

答案 0 :(得分:2)

你太早了。在dispatch设置之前,self.object是第一个被调用的方法。您需要覆盖getpost并在每个帐户中进行检查(在调用super后),或在您的调度方法中明确调用get_object