Я где-то слышал о взломе django orm. Это происходит так
dp = SomeModel.objects.filter(type="customer").last()
dp.id = dp.id + 1 #changing id to a new one
dp.save()
Последний шаг предположительно создает новую запись, если используемое значение идентификатора не существует. В случае существования увеличенного идентификатора метод сохранения действует как метод обновления. пример ::
dp.version += 1 #updating some random field
dp.save() # will change the newer version of dp.id
Я хотел бы задать ветеранам джанго два вопроса для нашей пользы,
- Есть ли надежный способ создания новой записи из старой записи с последним auto_increment_pk вместо метода pk + 1
- Вышеупомянутый метод быстрее или лучше. Я вижу одно преимущество: если у меня есть модель с 10 полями, и я хочу создать новую запись из старой только с 1 или 2 изменениями по сравнению со старой, этот метод экономит 8 строк кода.
Благодарю вас