2017-03-26 88 views
1

每個用戶都有自己的崗位,他可以對其進行編輯,但現在他可以編輯其他用戶的帖子 這裏是我的edit_post如何防止用戶編輯或刪除其他用戶帖子? 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}) 

回答

1

檢查當前用戶帖子的原作者,並採取適當的如果不採取行動:

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

理想情況下,你也檢查模板和展示的形式向作者,而不是別人。

+0

yesssssssss它的工作原理:D所以請告訴我該怎麼做(檢查的事情) – Imed

相關問題