我正在使用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)