En la interfaz de administración de Django, ¿hay una manera de duplicar un elemento?

¿Solo se pregunta si hay una manera fácil de agregar la funcionalidad para duplicar una lista existente en la interfaz de administración?

En la entrada de datos, nos hemos encontrado con una situación en la que muchos elementos comparten datos generics con otro, y para ahorrar tiempo sería bueno duplicar rápidamente un listado existente y solo alterar los datos modificados. Utilizar una estructura de modelo mejor sería una forma de reducir la duplicación de los datos, pero puede haber una situación en la que los datos duplicados deban cambiarse de forma individual en el futuro.

Puede guardar como simplemente habilitando agregar esto a su ModelAdmin:

save_as = True 

Esto reemplaza el botón “Guardar y agregar otro” con un botón “Guardar como”. “Guardar como” significa que el objeto se guardará como un nuevo objeto (con una nueva ID), en lugar del objeto antiguo.

Hay una solución mejor (pero no incorporada) aquí:

https://github.com/RealGeeks/django-modelclone

Desde su README:

El administrador de Django tiene una función para save_as que agrega un nuevo botón a la página Cambiar para guardar una nueva instancia de ese objeto.

No me gusta la forma en que funciona esta función porque guardará una copia idéntica del objeto original (si no recibe los errores de validación) tan pronto como haga clic en ese enlace, y si olvida hacer los pequeños cambios que deseado en el nuevo objeto, terminará con un duplicado del objeto existente.

Por otro lado, django-modelclone ofrece una vista intermedia, que básicamente rellena el formulario por usted. Así que puedes modificar y luego guardar una nueva instancia. O simplemente desaparecer sin efectos secundarios.