Django:仅限用户访问自己的对象

时间:2017-11-19 15:09:03

标签: python django

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

1 个答案:

答案 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

中获取已登录的用户对象