自定义get_queryset方法:
def get_queryset(self): if self.request.user.is_superuser: return User.objects.all() else: return User.objects.filter(id=self.request.user.id)
指定,
permission_classes = (AllowAny,)以便经过身份验证的用户可以创建一个新用户。
编辑 :评论中的进一步解释
通过这种方式自定义get_queryset方法意味着:
是的,未经身份验证的用户可以发送GET请求以检索用户列表,但该列表为空,因为返回User.objects.filter(id = self.request.user.id)确保仅返回有关经过身份验证的用户的信息。
对于其他方法也是如此,如果经过身份验证的用户尝试删除另一个用户对象,则会返回详细信息:未找到(因为它正在尝试访问的用户不在查询集中)。
经过身份验证的用户可以对用户对象执行任何 *** 作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)