python – 用户为FK TastyPie API的模型资源
发布时间:2020-12-16 21:32:20 所属栏目:Python 来源:网络整理
导读:使用TastyPie我有一个拥有FK用户的模型资源.当我对API发布POST时,我必须包含这样的用户ID: data : JSON.stringify({ name : 'value a',user : '12' }), 我的用户必须通过登录或使用API??密钥以及用户名和密码进行身份验证.在这两种情况下,我都知道用户是谁.
使用TastyPie我有一个拥有FK用户的模型资源.当我对API发布POST时,我必须包含这样的用户ID:
data : JSON.stringify({ name : 'value a',user : '12' }), 我的用户必须通过登录或使用API??密钥以及用户名和密码进行身份验证.在这两种情况下,我都知道用户是谁. 1)如何让用户确保user1不为user2创建资源? 2)或者完全发送用户ID是违反直觉的?我应该以某种方式从授权细节中获取用户,如果是这样的话? 解决方法
回答问题#1:Tastypie文档描述了
how to create per-user resources.假设用户已经是请求的一部分:
class MyResource(ModelResource): class Meta: queryset = MyModel.objects.all() resource_name = 'environment' list_allowed_methods = ['get','post'] authentication = ApiKeyAuthentication() authorization = Authorization() # Only allow creation of objects belonging to the user def obj_create(self,bundle,**kwargs): return super(EnvironmentResource,self).obj_create(bundle,user=bundle.request.user) # Only allow accessing resources for this user def apply_authorization_limits(self,request,object_list): return object_list.filter(user=request.user) 要回答问题#2,您应该让用户成为会话的一部分. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |