我希望这没有被问到,我只是错过了它,但我搜索了一堆但找不到任何东西。
我在添加或更改对象时向 django 管理器添加了一个额外的保存按钮。这样做相当容易。我只是覆盖 submit_line.html 以添加额外的按钮,然后覆盖 save_model 函数以检查该按钮的名称。它很好用。
我的问题是我只需要为一个特定对象显示此按钮...而不是所有对象。我查看了 change_form.html 以了解它如何知道它正在处理的对象并找到了 {{ opts.module_name }},但它似乎无法在 submit_line.html 中访问。我试着把它打印出来,但什么也没有出现。
我也考虑过破解 save_as(不是很优雅,但我并不真正关心这个特定的项目),但那个按钮只在更改时显示......而不是在添加时显示,所以这行不通。
有谁知道如何检测我在 submit_line.html 中使用的对象?或者有其他方法吗?
谢谢!
最佳答案
您可以像这样使用 javascript 来做到这一点:
/static/js/useful.js
$(document).ready(function ($) { $('input[name="_addanother"]').before('<input type="submit" name="_use" value="Useful functionality"/>'); });
并在您的 ModelAdmin 中添加:
class MyModelAdmin(admin.ModelAdmin): class Media: js = ('/static/js/useful.js',)
关于django - 在 django admin 中向一个对象添加一个额外的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3874231/