Tastypie - 使用CSV导入创建操作

时间:2014-07-09 09:39:26

标签: python django csv tastypie

我正在使用Django Tastypie作为REST API - 服务。到目前为止它非常简单,我能够满足所有简单的CRUD要求。

但现在我有CSV导入的情况。需要导入让我们说有50多个用户从CSV到Django的User Auth DB表。我使用http://django-tastypie.readthedocs.org/en/latest/tutorial.html作为API参考。

有没有人知道如何为django用户身份验证模块执行csv导入,并使用tastypie api使用文件上传创建用户?我甚至不确定这个API模块是否可以像这样处理文件上传。 (对不起初学者问题)

如果不是..是否有针对上述场景的解决方法或某种调整。

请指引我朝正确的方向前进。如果你知道某种启动指南,请告诉我。

更新

def dispatch(self, request_type, request, **kwargs):
        self.body = request.body
        return super(TestResource, self).dispatch(request_type, request, **kwargs)

def post_list(self, request, **kwargs):
    deserialized = self.deserialize(request, self.body, format=request.META.get('CONTENT_TYPE', 'application/json'))
    deserialized = self.alter_deserialized_detail_data(request, deserialized)
    bundle = self.build_bundle(data=dict_strip_unicode_keys(deserialized), request=request)
    updated_bundle = self.obj_create(bundle, **self.remove_api_resource_names(kwargs))
    location = self.get_resource_uri(updated_bundle)

    if not self._meta.always_return_data:
        return http.HttpCreated(location=location)
    else:
        updated_bundle = self.full_dehydrate(updated_bundle)
        updated_bundle = self.alter_detail_data_to_serialize(request, updated_bundle)
        return self.create_response(request, updated_bundle, response_class=http.HttpCreated, location=location)

def deserialize(self, request, data, format=None):
    if not format:
        format = request.META.get('CONTENT_TYPE', 'application/json')

    if format == 'application/x-www-form-urlencoded':
        return request.POST

    if format.startswith('multipart'):
        data = request.POST.copy()
        data.update(request.FILES)
        return data
    return super(TestResource, self).deserialize(request, data, format)

0 个答案:

没有答案