首页 > 解决方案 > 如何限制对我的个人资料视图的访问?

问题描述

我做了一个访问个人信息的视图。为此,URL 中有一个 pk。但是,这是有问题的,因为他们可以通过更改 pk 的值来访问其他用户信息。我阅读了文档,但没有找到与此相关的任何内容。我怎样才能防止这个问题?

path('profil/<int:pk>', views.ProfilView.as_view(), name="profil") 

标签: pythondjangopython-3.x

解决方案


如果 PK 没有理由出现在 URL 中(即您不想使用相同的视图来查看其他人的信息),您可以让您ProfilView看起来像这样,假设它源自DetailView

from django.contrib.auth.mixins import LoginRequiredMixin
# ...

class ProfilView(LoginRequiredMixin, DetailView): 
    model = User  # or whatever it happens to be

    def get_object(self):
        return self.request.user  # Always return the current user

简单地说


path('profil/', views.ProfilView.as_view(), name="profil") 

在您的 URL 配置中。


推荐阅读