Python Tastypie-使用CSV导入创建操作
我正在为RESTAPI服务使用Django Tastypie。到目前为止,它非常简单,我能够满足所有简单的CRUD要求 但现在我有CSV导入的情况。需要将50多个用户从CSV导入Django的User Auth DB表。我使用API作为参考 是否有人知道如何为django用户身份验证模块执行csv导入,并使用文件上载使用tastypie api创建用户??我甚至不确定这个API模块是否可以处理这样的文件上传。(对于初学者的问题,我很抱歉) 如果不是。。对于上述场景,是否有变通方法或某种调整 请给我指引正确的方向。如果你知道一些踢腿入门指南,让我知道 更新:Python Tastypie-使用CSV导入创建操作,python,django,csv,tastypie,Python,Django,Csv,Tastypie,我正在为RESTAPI服务使用Django Tastypie。到目前为止,它非常简单,我能够满足所有简单的CRUD要求 但现在我有CSV导入的情况。需要将50多个用户从CSV导入Django的User Auth DB表。我使用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)
我已根据你的要求更新了问题。请看一下更新部分。我尝试使用反序列化方法来处理多部分数据。如果指定了格式,则选择应用程序类型作为给定格式,否则选择Json格式。问题是用户没有被添加到userauth表中。。我在控制台中没有收到任何错误。另外,我是新手,所以请告诉我是否有其他方法来排除故障,并给你更多的信息。提前谢谢。