Как я могу изменить 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)
идентификатор увеличивается автоматически, вам не нужно обновлять его самостоятельно.
Надеюсь, это ответ на ваш вопрос.
Позвольте мне уточнить, что я думаю происходит, и вы можете сказать мне, если это ответ на неправильный вопрос :)
- Вы получаете данные, включая
id
.
- Вы хотите сохранить это как новую запись, включая новый ID?
Если это так, то перед сохранением убедитесь, что вы установили id
в None
, и Django присвоит новое значение ключа при сохранении в БД. Нет необходимости пытаться разобраться в этом самостоятельно - просто убедитесь, что там нет уже существующего ключа. Возможно, вы могли бы просто pop
полностью отключить id
от сериализатора.