我使用@login_required强制用户在创建任何对象之前进行身份验证。但问题是所有经过身份验证的用户都可以通过对象pk访问更新对象,甚至是由其他用户创建的对象。我可以限制用户只能访问自己的对象吗?
答案 0 :(得分: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