小编xle*_*xle的帖子

在 Django 中,如何确保特定用户正在访问视图?

我希望能够检查访问页面的用户是否是特定用户。

例如,当用户访问我的博客应用程序上的“编辑帖子”页面时,我想确保该用户是该帖子的作者。

目前,我检查访问“/Blog/Edit//”的用户是否具有 blog.change_post 权限。

但是,如果第二个用户(也有该权限)要输入 URL 来更改其他人的帖子,他们将通过该权限检查并能够编辑其他人的帖子。

我想要的是一个@user_passes_test 函数,它根据帖子的作者属性检查访问视图的用户对象。

#/Blog/urls.py

urlpatterns = [
    ...
    path('Edit/<int:pk>', views.BlogEdit, name='BlogEdit'),
    ...
]



#/Blog/views.py

@permission_required('blog.change_post', login_url='/Portal/login')
def BlogEdit(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.save()
            return redirect('/Blog', pk=post.pk)
    else:
        form = PostForm(instance=post)
    return render(request, 'Blog/Edit.html', {'form': form})
Run Code Online (Sandbox Code Playgroud)

python authentication django

3
推荐指数
1
解决办法
423
查看次数

标签 统计

authentication ×1

django ×1

python ×1