Django管理员,隐藏+加号到特定的外键字段

时间:2011-12-30 12:55:10

标签: django foreign-keys admin

我想在django-admin界面中隐藏特定模型的某些foreignkey字段中的加号+。这可能吗?

提前致谢!

3 个答案:

答案 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;
}