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

发布于 2024-12-24 01:18:07 字数 68 浏览 1 评论 0 原文

我想在 django-admin 界面中隐藏特定模型的一些外键字段中的加号 + 号。有可能吗?

提前致谢!

i want to hide the plus + sign in some foreignkey fields of a specific model in django-admin interface. it's possible?

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

平安喜乐 2024-12-31 01:18:07

当该外键的模型也可以添加到管理员中时,就会添加 +,并且基于用户对该模型拥有的权限。如果用户无法添加这些类型的模型,请覆盖外键 ModelAdmin 上的 has_add_permission(即加号允许您添加的模型),并在适当的条件下返回 False。对于任何不允许的用户,+ 将会消失。

The + is added when that foreign key's model can also be added in the admin, and is based on the permissions the user has on that model. If the user shouldn't be able to add those types of models, override has_add_permission on the foreign key's ModelAdmin (i.e. the one the plus sign would allow you to add), and return False for the appropriate conditions. The + will go away for any user not allowed.

独享拥抱 2024-12-31 01:18:07

如果您只是为了美观目的而隐藏它,我会使用隐藏此“+”符号的 Javascript 脚本。

您可以使用 Media 内部类将自定义 Javascript 源添加到管理模型表单,如 文档。像这样的东西:

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();
});

另一方面,如果那些管理员用户永远无法添加这样的模型,请不要授予他们添加这些模型的权限。那么这些添加的链接将永远不会显示。

If you just want to hide it for cosmetic purpose, I'd use a Javascript script that hides this '+' sign.

You can add custom Javascript sources to Admin Modelform's by using the Media inner class, as described in the docs. Something like this:

class MyModelAdmin(admin.ModelAdmin):
    class Media:
        js = ("js/hide_myfield_addlink.js",)

The Javascript source would look something like:

/* file: hide_myfield_addlink.js */
django.jQuery(document).ready(function() {
    django.jQuery("#add_id_myfield").hide();
});

On the other hand, if those admin users should never be able to add such a model, don't give them the permission to add those. Then these add links will never be displayed.

羅雙樹 2024-12-31 01:18:07

不妨在 CSS 中做到这一点:

.field-myfield .related-widget-wrapper-link {
  display: none;
}

或者在所有地方禁用它:

.related-widget-wrapper-link {
  display: none;
}

Might as well do it in CSS:

.field-myfield .related-widget-wrapper-link {
  display: none;
}

Or to disable it everywhere:

.related-widget-wrapper-link {
  display: none;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文