我想在django-admin界面中隐藏特定模型的某些foreignkey字段中的加号+。这可能吗?
提前致谢!
答案 0 :(得分:3)
当外键的模型也可以添加到管理员中时,会添加+
,并且基于用户对该模型的权限。如果用户不能添加这些类型的模型,请覆盖外键has_add_permission
上的ModelAdmin
(即加号允许您添加的那个),并返回False为适当的条件。对于任何不允许的用户,+
都会消失。
答案 1 :(得分:2)
如果您只想将其隐藏起来用于美容目的,我会使用隐藏此“+”符号的Javascript脚本。
您可以使用Media内部类将自定义Javascript源添加到Admin Modelform,如docs中所述。像这样:
class MyModelAdmin(admin.ModelAdmin):
class Media:
js = ("js/hide_myfield_addlink.js",)
Javascript源代码如下:
/* file: hide_myfield_addlink.js */
django.jQuery(document).ready(function() {
django.jQuery("#add_id_myfield").hide();
});
另一方面,如果这些管理员用户永远不能添加这样的模型,请不要授予他们添加这些模型的权限。然后,这些添加链接将永远不会显示。
答案 2 :(得分:0)
不妨在 CSS 中实现:
.field-myfield .related-widget-wrapper-link {
display: none;
}
或者在任何地方禁用它:
.related-widget-wrapper-link {
display: none;
}