2008-10-07 4 views
47

Vous vous demandez simplement s'il existe un moyen facile d'ajouter la fonctionnalité pour dupliquer une liste existante dans l'interface d'administration?Dans l'interface d'administration de Django, existe-t-il un moyen de dupliquer un élément?

En entrée de données, nous avons rencontré un grand nombre d'éléments partageant des données génériques avec un autre élément, et pour gagner du temps, il serait très agréable de dupliquer rapidement une liste existante et de modifier uniquement les données modifiées. L'utilisation d'une meilleure structure de modèle serait un moyen de réduire la duplication des données, mais il pourrait y avoir une situation où les données dupliquées doivent être modifiées individuellement à l'avenir.

Répondre

83

Vous pouvez save as simplement en permettant d'ajouter ceci à votre ModelAdmin:

save_as = True 

Cela remplace le « Enregistrer et ajouter un autre » bouton avec un bouton « Enregistrer sous ». "Enregistrer sous" signifie que l'objet sera enregistré en tant que nouvel objet (avec un nouvel ID), plutôt que l'ancien objet.

+1

La mise en œuvre de ce n'était pas évident pour moi et j'ai trouvé que [la section d'une autre question intitulée 'Sample admin.py'] (http://stackoverflow.com/questions/18577324/django-save-as-new-and- keep-image-fields) montre que vous devez dériver de ModelAdmin, puis utiliser 'admin.site.register (Person, PersonAdmin)' (si PersonAdmin est votre classe dérivée) au lieu d'utiliser 'admin.site.register (Person) ' – sage

Questions connexes