只是想知道是否有一种简单的方法来添加复制管理界面中现有列表的功能?
在数据输入中,我们遇到了许多项目与另一项共享通用数据的情况,为了节省时间,快速复制现有列表并仅更改已更改的数据将非常好.使用更好的模型结构将是减少数据重复的一种方法,但可能存在需要在将来单独更改重复数据的情况.
您只需启用将其添加到ModelAdmin 即可保存:
save_as = True
这将使用"另存为"按钮替换"保存并添加另一个"按钮."另存为"表示对象将保存为新对象(具有新ID),而不是旧对象.
这里有一个更好的(但不是内置的)解决方案:
https://github.com/RealGeeks/django-modelclone
从他们的自述文件中:
Django Admin的
save_as
功能是在“更改”页面上添加新按钮,以保存该对象的新实例。我不喜欢此功能的工作方式,因为单击该链接后,如果忘记进行一些小的更改,您将保存原始对象的相同副本(如果未收到验证错误)。在新对象中需要时,您将得到现有对象的副本。
另一方面,django-modelclone提供了一个中间视图,该视图基本上为您预填充了表单。因此,您可以修改然后保存新实例。或者只是走开而没有副作用。