我试图访问个人信息。为此,URL中有一个pk。但是,这是有问题的,因为他们仅通过更改pk的值就可以访问其他用户信息。我阅读了该文档,但没有发现任何相关内容。 如何预防此问题?
path('profil/<int:pk>', views.ProfilView.as_view(), name="profil")
答案 0 :(得分:2)
如果没有理由在URL中包含PK(即,您不想使用同一视图来查看其他人的信息),则可以假设您的p <- plot(sin, -pi, 2*pi, sub="ordinary plot")
s <- seqplot(biofam.seq, type="Ht")
> str(p)
List of 2
$ x: num [1:101] -3.14 -3.05 -2.95 -2.86 -2.76 ...
$ y: num [1:101] -1.22e-16 -9.41e-02 -1.87e-01 -2.79e-01 -3.68e-01 ...
> str(s)
NULL
看起来像这样它源自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
在您的URL配置中。
答案 1 :(得分:0)
要求用户登录,如果不是自己的个人资料ID,则显示401未经授权错误。
使用一个profil/me
网址来始终显示用户自己的个人资料可能很有用。