python - tutorial - En la interfaz de administración de Django, ¿hay alguna forma de duplicar un elemento?
tutorial django (2)
¿Me pregunto si existe 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 topado con una situación en la que muchos elementos comparten datos genéricos con otro elemento, y para ahorrar tiempo, sería muy bueno duplicar rápidamente una lista existente y solo alterar los datos modificados. Usar una mejor estructura de modelo 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.
Hay una solución mejor (pero no incorporada) aquí:
https://github.com/RealGeeks/django-modelclone
De su LÉAME:
El administrador de Django tiene una función
save_as
que agrega un nuevo botón a su página de Cambio para guardar una nueva instancia de ese objeto.No me gusta la forma en que funciona esta característica porque guardará una copia idéntica del objeto original (si no obtiene errores de validación) tan pronto como haga clic en ese enlace, y si olvida hacer los pequeños cambios que quería en el nuevo objeto que terminará con un duplicado del objeto existente.
Por otro lado, django-modelclone ofrece una vista intermedia, que básicamente rellena previamente el formulario por usted. Entonces puede modificar y luego guardar una nueva instancia. O simplemente vete sin efectos secundarios.
Puede guardarlo simplemente habilitando agregar esto a su ModelAdmin:
save_as = True
Esto reemplaza el botón "Guardar y agregar otro" con el botón "Guardar como". "Guardar como" significa que el objeto se guardará como un nuevo objeto (con una nueva ID), en lugar del objeto anterior.