python – 用户为FK TastyPie 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,您应该让用户成为会话的一部分.

相关文章

我最近重新拾起了计算机视觉,借助Python的opencv还有face_r...
说到Pooling,相信学习过CNN的朋友们都不会感到陌生。Poolin...
记得大一学Python的时候,有一个题目是判断一个数是否是复数...
文章目录 3 直方图Histogramplot1. 基本直方图的绘制 Basic ...
文章目录 5 小提琴图Violinplot1. 基础小提琴图绘制 Basic v...
文章目录 4 核密度图Densityplot1. 基础核密度图绘制 Basic ...