2. Как скопировать или клонировать существующий объект модели?

Встроенного метода копирования экземпляров модели не существует, можно создать новый экземпляр с копированием значений всех полей.

Если экземпляр сохраняется с параметром pk, установленным в None, то этот экземпляр используется для создания новой записи в БД. Это означает, что каждое поле, кроме PK, копируется.

In [2]: Hero.objects.all().count()
Out[2]: 4

In [3]: hero = Hero.objects.first()

In [4]: hero.pk = None

In [5]: hero.save()

In [6]: Hero.objects.all().count()
Out[6]: 5
Вернуться на верх