Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用户为FK-TastyPie API的模型资源_Python_Django_Django Models_Tastypie - Fatal编程技术网

Python 用户为FK-TastyPie API的模型资源

Python 用户为FK-TastyPie API的模型资源,python,django,django-models,tastypie,Python,Django,Django Models,Tastypie,使用TastyPie,我有一个模型资源,其中有一个FK用户。当我发布到API时,我必须包含如下用户id: data : JSON.stringify({ name : 'value a', user : '12' }), 我的用户必须通过登录或使用API密钥、用户名和密码进行身份验证。在这两种情况下,我都知道用户是谁 1) 如何确保用户user1不会为user2创建资源 2) 或者发送用户ID是违反直觉的?我是否应该以某种方式从授权详细信息中获取用户,如果是,如何获取?回答问题1:Tast

使用TastyPie,我有一个模型资源,其中有一个FK用户。当我发布到API时,我必须包含如下用户id:

 data : JSON.stringify({ name : 'value a', user : '12' }), 
我的用户必须通过登录或使用API密钥、用户名和密码进行身份验证。在这两种情况下,我都知道用户是谁

1) 如何确保用户user1不会为user2创建资源

2) 或者发送用户ID是违反直觉的?我是否应该以某种方式从授权详细信息中获取用户,如果是,如何获取?

回答问题1:Tastypie文档描述。假设用户已经是请求的一部分:

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,您可能应该让用户参与会话。

obj#u create()中super()的第一个参数不应该是“MyResource”吗?