python - 如何限制对我的个人资料视图的访问?
问题描述
我做了一个访问个人信息的视图。为此,URL 中有一个 pk。但是,这是有问题的,因为他们可以通过更改 pk 的值来访问其他用户信息。我阅读了文档,但没有找到与此相关的任何内容。我怎样才能防止这个问题?
path('profil/<int:pk>', views.ProfilView.as_view(), name="profil")
解决方案
如果 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 配置中。
推荐阅读
- php - PHP显示json解码数组的子子项
- javascript - 将带有 getElementById 的站点加载到不占用 100% 宽度的 div 中
- oracle - Oracle 空闲会话
- c# - 如何在 C# 中为派生类专门化成员类型?
- amazon-web-services - ReadCapacityUnitsLimit-BasicAlarm 中的值
- powershell - 从日志文件中的某些行中提取始终位于同一位置的 3 位数字
- javascript - 将装饰器添加到打字稿中动态创建的函数
- ios - 当我调用发布/订阅方法时,为什么我的 NearbyMessages Objective-C 到 C# 绑定会抛出 NSInvalidArgumentException?
- statistics - 使用置信区间和点估计计算比例的方差
- algorithm - 在没有额外课程的情况下找到二叉树中最深的节点?