Breves: Copiar una instancia de Model en Django
Una solución rápida para hacer una copia de un modelo es utilizar copy. copy es un módulo estándar de Python que nos permite realizar copias de objetos. Este módulo ofrece dos tipos de copias: shallow y deep.
La diferencia está en como se comporta con objetos compuestos, es decir, objetos que contienen otros objetos.
- Copia shallow (o superficial): crea un nuevo objecto compuesto y trata de insertar, en la medida de lo posible, las referencias a los objetos encontradas en el objeto original
- Copia deep (o profunda): crea un objeto compuesto nuevo y, de forma recursiva, realiza una copia de todos los objetos encontrados en el objeto original
from copy import deepcopy
obj_copy = deepcopy(obj)
obj_copy.pk = None
obj_copy.save()
Tags
La teoría es cuando crees saber algo, pero no funciona.
La práctica es cuando algo funciona, pero no sabes por qué.
Los programadores combinan la teoría y la práctica:
Nada funciona y no saben por qué.
