如何限制个人资料视图的访问权限?

时间:2019-02-12 18:02:59

标签: python django python-3.x

我试图访问个人信息。为此,URL中有一个pk。但是,这是有问题的,因为他们仅通过更改pk的值就可以访问其他用户信息。我阅读了该文档,但没有发现任何相关内容。 如何预防此问题?

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

2 个答案:

答案 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网址来始终显示用户自己的个人资料可能很有用。