При использовании 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']
Вернуться на верх