Как я могу изменить id модели из сериализатора?

Для того, чтобы добавить данные Django db, id должен быть другим поэтому я хочу изменить значение id модели данных. Как я могу изменить id модели из сериализатора ?

msg = self.request.recv(1024)
while msg: 
        print([Name], msg.decode())
        stream = io.BytesIO(msg)
        data = JSONParser().parse(stream)
        serializer = DataSerializer(data=data) # create new instance
        # serializer = DataSerializer(data, data=data) # update 'data'
        print(serializer)
        print(Data.objects.last().id + 1)
        serializer.id = Data.objects.last().id + 1 <<< can not input
        print(serializer)
        
        serializer.is_valid()
        serializer.errors
        serializer.validated_data

Если вы хотите добавить свои данные в базу данных, вы можете использовать Data.objects.create(data=data) идентификатор увеличивается автоматически, вам не нужно обновлять его самостоятельно.

Надеюсь, это ответ на ваш вопрос.

Позвольте мне уточнить, что я думаю происходит, и вы можете сказать мне, если это ответ на неправильный вопрос :)

  1. Вы получаете данные, включая id
  2. .
  3. Вы хотите сохранить это как новую запись, включая новый ID?

Если это так, то перед сохранением убедитесь, что вы установили id в None, и Django присвоит новое значение ключа при сохранении в БД. Нет необходимости пытаться разобраться в этом самостоятельно - просто убедитесь, что там нет уже существующего ключа. Возможно, вы могли бы просто pop полностью отключить id от сериализатора.

Вернуться на верх