I am trying to do a bulk insert using jquery ajax and django restframework. When I upload my data using the django restframework interface, it works and when I print the request.data I get this
[{'name': 'Tenant 1', 'email': 'tenant1@gmail.com', 'phone_number': 619}, {'name': 'Tenant 2', 'email': 'tenant2@gmail.com', 'phone_number': 9
11}]
However, when I upload it using jquery, I get the data as
<QueryDict: {'name': ['Tenant 1', 'Tenant 2'], 'calling_code': ['254', '254'], 'phone_number': ['619', '911'], 'email': ['tenant1@gmail.com', 'tenant2@gmail.com']}>
here is my code: in tenantsAdd.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,
In my views.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()
})
So baically, I am trying to turn this:
<QueryDict: {'name': ['Tenant 1', 'Tenant 2'], 'calling_code': ['254', '254'], 'phone_number': ['619', '911'], 'email': ['tenant1@gmail.com', 'tenant2@gmail.com']}>
Into this:
[{'name': 'Tenant 1', 'email': 'tenant1@gmail.com', 'phone_number': 619}, {'name': 'Tenant 2', 'email': 'tenant2@gmail.com', 'phone_number': 911}]