在 Django 管理屏幕中删除“添加另一个”

新手上路,请多包涵

每当我使用对象 B 的外键编辑对象 A 时,对象 B 的选项旁边会出现一个加号选项“添加另一个”。如何删除该选项?

我配置了一个无权添加对象B的用户。加号仍然可用,但是当我点击它时,它显示“权限被拒绝”。它很丑。

我正在使用 Django 1.0.2

原文由 Jack Ha 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 446
2 个回答

弃用的答案

Django 使这成为可能。


您是否考虑过使用 CSS 来简单地不显示按钮?也许这有点太老套了。

这是未经测试的,但我在想……

no-addanother-button.css

 #_addanother { display: none }

admin.py

 class YourAdmin(admin.ModelAdmin):
    # ...
    class Media:
        # edit this path to wherever
        css = { 'all' : ('css/no-addanother-button.css',) }

用于执行此操作的 Django Doc—— 媒体作为静态定义

注意/编辑: 文档说文件将以 MEDIA_URL 为前缀,但在我的实验中它不是。你的旅费可能会改变。

如果您发现自己属于这种情况,可以快速解决这个问题……

 class YourAdmin(admin.ModelAdmin):
    # ...
    class Media:
        from django.conf import settings
        media_url = getattr(settings, 'MEDIA_URL', '/media/')
        # edit this path to wherever
        css = { 'all' : (media_url+'css/no-addanother-button.css',) }

原文由 T. Stone 发布,翻译遵循 CC BY-SA 4.0 许可协议

以下答案是我原来的答案,但它是错误的,没有回答 OP 的问题:

更简单的解决方案,没有 CSS hack,也没有编辑 Django 代码库:

将此添加到您的内联类:

 max_num=0

(这仅适用于内联表单,不适用于 OP 要求的外键字段)


上面的答案仅对隐藏内联表单的“添加相关”按钮有用,而不是按要求隐藏外键。

当我写下答案时,IIRC 接受的答案隐藏了两者,这就是我感到困惑的原因。

下面似乎提供了一个解决方案(虽然使用 CSS 隐藏似乎是最可行的事情,特别是如果 FKs 的“添加另一个”按钮是内联形式):

Django 1.7 从内联表单中删除添加按钮

原文由 pistache 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题