【问题标题】:Django: restrict user access to their own objects onlyDjango:仅限制用户访问自己的对象
【发布时间】:2017-11-19 23:37:46
【问题描述】:

我正在使用@login_required 强制用户在创建任何对象之前进行身份验证。但问题是所有经过身份验证的用户都可以通过对象 pk 更新对象,甚至是其他用户创建的对象。如何限制用户只能访问自己的对象?

【问题讨论】:

    标签: python django


    【解决方案1】:

    首先你需要在每个对象中保存用户信息,以便区分它们。

    如果你有这些信息,你只需要filter()你的查询集来返回与登录用户相关的对象。

    @login_required
    def index_view(request):
       p = Model.objects.filter(user=request.user)
       return render(request, 'app/index.html', {'objects': p})
    

    您将始终在 request.user

    中获得登录用户对象

    【讨论】:

    • 你的意思是所有模型都需要用户模型的外键?
    • 是的,那些模型,你想让对象特定于用户
    猜你喜欢
    • 2019-06-09
    • 2019-07-11
    • 2016-04-23
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    相关资源
    最近更新 更多