При использовании bulk_create() -> error = "detail": "Ошибка разбора JSON - Ожидание разделителя ',': строка 1 столбец
В этом файле я пытаюсь разместить информацию о пользователе, одном или многих, используя bulk_create()
views.py
@api_view(['POST'])
def post_user(request):
print("INSIDE")
print(request.data)
if len(request.data) == 1:
user_data = UserInfoSerializer(data=request.data)
if user_data.is_valid():
user_data.save()
return Response(user_data.data)
else:
UserData.objects.bulk_create(request.data, batch_size=1000)
Запрос, который я посылаю, таков
[{"name":"George","gpa":2}, {"name":"Dev","gpa":4}, {"name":"Bianca","gpa":3.2}]
Когда я отправляю запрос с одним словарем, данные загружаются. Но не с несколькими
Попробуйте это:
@api_view(['POST'])
def post_user(request):
print("INSIDE")
print(request.data)
if len(request.data) == 1:
user_data = UserInfoSerializer(data=request.data)
if user_data.is_valid():
user_data.save()
return Response(user_data.data)
else:
user_list = []
for object in request.data:
if not sometable.objects.filter(id=object['age_id']).exists():
# raise exception here
user_instance = UserData(name=object['name'], gpa=object['gpa'], age_id=object['age_id'], time=object['time'])
user_list.append(user_instance)
UserData.objects.bulk_create(user_list)
Update
class UserInfoSerializer(serializers.ModelSerializer):
age_id = serializers.IntegerField()
class Meta:
model = UserData
fields = ['age_id', 'name', 'gpa', 'time']