python - 如何防止用户编辑或删除其他用户的帖子? Django

标签 python django

每个用户都有自己的帖子并且可以编辑它们,但现在他可以编辑其他用户的帖子 这是我的编辑帖子

def post_edit(request, pk):
   post = get_object_or_404(Post, pk=pk)
   if request.method == "POST":
      form = PostForm(request.POST, instance=post)
      if form.is_valid():
         post = form.save(commit=False)
         post.user = request.user
         post.published_date = timezone.now()
         post.save()
         return HttpResponseRedirect(post.get_absolute_url())
   else:
         form = PostForm(instance=post)
return render(request, 'blog/post_form.html', {'form': form})

最佳答案

检查当前用户是否是帖子的原始作者,如果不是,请采取适当的措施:

def post_edit(request, pk):
   post = get_object_or_404(Post, pk=pk)
   if post.user != request.user:
      raise Http404  # or similar
   # ...

理想情况下,您还可以在模板中检查这一点,并将表单显示给作者而不是其他任何人。

关于python - 如何防止用户编辑或删除其他用户的帖子? Django ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43028672/

相关文章:

python - 在 Python 中从二进制文件中读取整数

python - 在 Python 中需要保持 openssl 事件并继续给它命令

python - IPython 显示始终在 Text/Markdown 之前显示小部件

python - 如何从数据库中同时检索对象?

Django 自定义模板标签和模板加载器

python - 在 Sharepoint 上将 Python 数据导出到 Excel 文件

django - 查找具有多个模板和静态占位符的可见插件

python - 允许查看,但不能更改! - Django

python - docker python 官方示例错误

python - 类型错误 : float() argument must be a string or a number, 而不是 'NaTType'