【发布时间】:2021-11-08 20:12:59
【问题描述】:
我正在尝试使用 jquery ajax 和 django restframework 进行批量插入。当我使用 django restframework 接口上传我的数据时,它可以工作,当我打印 request.data 时,我得到了这个
[{'name': 'Tenant 1', 'email': 'tenant1@gmail.com', 'phone_number': 619}, {'name': 'Tenant 2', 'email': 'tenant2@gmail.com', 'phone_number': 911}]
但是,当我使用 jquery 上传它时,我得到的数据是
<QueryDict: {'name': ['Tenant 1', 'Tenant 2'], 'calling_code': ['254', '254'], 'phone_number': ['619', '911'], 'email': ['tenant1@gmail.com', 'tenant2@gmail.com']}>
这是我的代码: 在租户Add.html:
$(document).on('submit', '#create_tenant_bulk', function (event) {
var form_data = new FormData(this);
event.preventDefault();
$.ajax({
method: 'POST',
url: '{% url "tenants:tenant-listcreate" %}',
data: form_data,
mimeType:'application/json',
contentType: false,
dataType: "json",
processData: false,
在我看来.py:
class CreateTenantAPIView(generics.ListCreateAPIView):
queryset = Tenant.objects.all()
serializer_class = TenantSerializer
def create(self, request, *args, **kwargs):
print('yaaaaaaaaaaaaaaaaaaaaaaaazweeeeeeeeeeeeeh')
print(request.data)
print(type(request.data))
many = isinstance(request.data, list)
serializer = self.get_serializer(data=request.data, many=many)
if serializer.is_valid(raise_exception=True):
saved_user= serializer.save(added_by=self.request.user)
return Response({
'success': 'user has been added succsfully',
})
else:
return Response({
'error': 'you done f@#ckd up',
'error_list':serializer.errors.items()
})
所以,我想把它变成这样:
<QueryDict: {'name': ['Tenant 1', 'Tenant 2'], 'calling_code': ['254', '254'], 'phone_number': ['619', '911'], 'email': ['tenant1@gmail.com', 'tenant2@gmail.com']}>
进入这个:
[{'name': 'Tenant 1', 'email': 'tenant1@gmail.com', 'phone_number': 619}, {'name': 'Tenant 2', 'email': 'tenant2@gmail.com', 'phone_number': 911}]
【问题讨论】:
-
这能回答你的问题吗? How to convert a Django QuerySet to a list?
-
看起来你正在使用 Django REST 框架,对吗?
标签: python django list django-queryset bulkinsert