【发布时间】:2017-11-19 23:37:46
【问题描述】:
我正在使用@login_required 强制用户在创建任何对象之前进行身份验证。但问题是所有经过身份验证的用户都可以通过对象 pk 更新对象,甚至是其他用户创建的对象。如何限制用户只能访问自己的对象?
【问题讨论】:
我正在使用@login_required 强制用户在创建任何对象之前进行身份验证。但问题是所有经过身份验证的用户都可以通过对象 pk 更新对象,甚至是其他用户创建的对象。如何限制用户只能访问自己的对象?
【问题讨论】:
首先你需要在每个对象中保存用户信息,以便区分它们。
如果你有这些信息,你只需要filter()你的查询集来返回与登录用户相关的对象。
@login_required
def index_view(request):
p = Model.objects.filter(user=request.user)
return render(request, 'app/index.html', {'objects': p})
您将始终在
中获得登录用户对象request.user
【讨论】: