def post_edit(request, post_id): post = get_object_or_404(Post, pk=post_id) if not pybb_editable_by(post, request.user) \ or request.user.pybb_profile.is_banned(): return redirect(post) head_post_id = post.topic.posts.order_by('created')[0].id form_kwargs = dict(instance=post, initial={'title': post.topic.name}) if post.id == head_post_id: form_class = EditHeadPostForm else: form_class = EditPostForm if request.method == 'POST': form = form_class(request.POST, request.FILES, **form_kwargs) else: form = form_class(**form_kwargs) if form.is_valid(): post = form.save() return redirect(post) return {'form': form, 'post': post, }
def get_object(self, queryset=None): post = super(EditPostView, self).get_object(queryset) if not pybb_editable_by(post, self.request.user): raise PermissionDenied return post