django - 在 django admin 中向一个对象添加一个额外的按钮

标签 django django-admin

我希望这没有被问到,我只是错过了它,但我搜索了一堆但找不到任何东西。

我在添加或更改对象时向 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/

相关文章:

python - django-admin - 如何修改 ModelAdmin 以一次创建多个对象?

python - Django 迁移错误 : ERRORS: 'choices' must be an iterable (e. g.,列表或元组)

django - 在 Django 中,当 UrlField 被设置为只读时,它会阻止它呈现为可点击的链接。为什么?

python - 将现有数据库与 django python 一起使用

python - 选择一个有效的选择。 XXXXXXX 不是可用选项之一

python - 将 Django 与包含多个表的遗留数据库一起使用

Django:实时记录到浏览器

django - is_authenticated 为 AnonymousUser 返回 True

django - 有没有办法在 Django 中为表提供一个人类可读的名称?

python - 如何向 Django ModelForm 添加额外的字段?