我想验证更新帖子的用户是帖子的作者。
我的代码看起来像这样(相关部分):
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.
我错过了什么?
答案 0 :(得分:2)
你太早了。在dispatch
设置之前,self.object
是第一个被调用的方法。您需要覆盖get
和post
并在每个帐户中进行检查(在调用super
后),或在您的调度方法中明确调用get_object
。