Предоставление данных в Serializer из файла json. Ошибка выдачи для незавершенных объектов в файле json. Я хочу, чтобы он игнорировал неполные и сохранял остальные. - PullRequest
0 голосов
/ 19 сентября 2019

Файл моих просмотров ...

class Importfile(APIView):                                                     
parser_classes = (MultiPartParser,)

def post(self, request):
    # response ={}
    try:
        json_file = request.FILES.get('json_file')
        print(request.data, "==================", json_file)

        if json_file is None:
            return Response({'data':'No file'}, status=400)
        else:
            file_type = mimetypes.guess_type(json_file.name)[0]
        # file_extension = mimetypes.guess_extension(json_file.name)
        #     file_extension = file_type[0]

            if file_type == "application/json":

                lines = json_file.read().decode("UTF-8")

                json_data = json.loads(lines)
                # print(data)
                # print(json_data['data'])
                serializer = NoteSerializer(data=json_data['data'], many=True)
                print("VALIDATINGGG", serializer.validate(attrs=json_data['data']))
                if serializer.is_valid():
                    serializer.save()

                return Response(serializer.data, status=200)
                # else:
                #     raise NoteSerializer.errors

            else:
                return Response({'data': 'not a json file'}, status=200)
    #
    # except :
        # return Response({'data': 'No file'}, status=400)
    except Exception as e:
        print(type(e).__name__, "EXCEPTION")
        return Response({'data': 'No file'}, status=400)

Мой файл Json ...

{
"data": [{
        "title": "GON No",
        "content": " MrGon96",
        "image": null,
        "url": null,
        "reminder": null,
        "is_trash": false,
        "is_archive": false,
        "is_pin": false,
        "color": "#fff475",
        "user": 1,
        "labels": [],
        "collaborator": [
            35
        ]
    },
    {
        "title": "We Are Here",
        "content": "Champions League",
        "image": null,
        "url": null
    },
    {
        "title": "We Are Here",
        "content": "Champions League",
        "image": null,
        "url": null,
        "reminder": null,
        "is_trash": false,
        "is_archive": false,
        "is_pin": false,
        "color": "#fff475",
        "user": 1,
        "labels": [],
        "collaborator": [
            35
        ]
    }
]

}

** Я хочу создать несколько объектов из сериализаторав базу данных.Я загружаю файл JSON и читаю данные из него.Я хочу, чтобы Serializer игнорировал недопустимый экземпляр / данные и сохранял другие действительные объекты.Выдает ошибку как: AttributeError ИСКЛЮЧЕНИЕ Неверный запрос: / notes / import / **

...