【发布时间】:2016-01-23 15:32:42
【问题描述】:
我有这个代码
class PostUpdateView(UpdateView):
model = Post
form_class = PostForm
template_name = 'main/edit.html'
def form_valid(self, form):
self.object = form.save(commit=False)
# Any manual settings go here
self.object.save()
return HttpResponseRedirect(self.object.get_absolute_url())
@method_decorator(login_required)
def dispatch(self, request, *args, **kwargs):
post = Post.objects.get(slug=kwargs['slug'])
if post.moderator == request.user:
return super(PostUpdateView, self).dispatch(request, *args, **kwargs)
else:
return http.HttpForbidden()
它几乎可以工作,只有发布的用户可以编辑,我遵循相同的删除方法,它工作正常。我只是不确定为什么它不能用于编辑表单。当用户去编辑 url 时,它会显示与 post 表单相同的编辑表单。但是当用户单击编辑按钮时,它会将我带到不存在的http://127.0.0.1:8000/edit/。但编辑网址是http://127.0.0.1:8000/post/xx/edit/。当我写这个问题时,我意识到我的 edit.html <form id="post_form" method="post" action="/edit/" enctype="multipart/form-data">
中有这个问题我应该改变行动吗?添加帖子的操作是“/add_post/”
【问题讨论】:
-
请加
urls.py。 -
你需要展示带有表单动作属性的模板。