代码之家  ›  专栏  ›  技术社区  ›  Krystian Cybulski

删除django admin中的“添加”功能[重复]

  •  8
  • Krystian Cybulski  · 技术社区  · 17 年前

    有没有办法删除django管理网站上的“添加”功能?对于某些实体,我只希望django管理员能够查看它们或更改现有的实体,但不能添加新的实体。

    6 回复  |  直到 13 年前
        1
  •  3
  •   Alex Martelli    17 年前

    当然,您可以按照说明非常详细地自定义管理。 here --我相信,你想要的东西,部分可以通过重写 ModelAdmin.save_model(self, request, obj, form, change) 你自己 ModelAdmin 子类,以确保当 change 是错误的(即尝试添加而不是更改),部分原因是重写 ModelAdmin.add_view(self, request, form_url='', extra_context=None) 显示一个“添加视图”,让管理员清楚地知道,不允许他们通过这个路径添加对象。实际上,我还没有完成您所需的具体管理定制,但我已经完成了其他工作,它们看起来工作得相当顺利!

        2
  •  8
  •   Community Mohan Dere    9 年前
        3
  •  3
  •   anschauung    17 年前

    您可以从管理界面中自定义每个用户组的权限:尝试转到 /admin/auth/group 从那里应该是直接的。

    这不会像前面的答案提供的解决方案那样精细,但它可以满足您的大部分需求,而无需自定义管理。

        4
  •  2
  •   Tim Fletcher    16 年前

    如果将权限更改为限制访问,则仍将通过FK/MTM字段获得加号。单击将打开一个弹出窗口,其中包含“权限被拒绝”。

    实际上,您可以通过不简单地向管理员注册模型来完全删除加号。

    我有一种情况,我有一个预定义的类别,我希望用户能够选择多个类别。最好的方法是使用models.manytomany字段。您可以向管理员注册模型,根据需要输入数据,然后删除注册。

        5
  •  1
  •   PeeHaa    14 年前

    一个简单有效的方法是 max_num=0 对于那个特定的内联。

        6
  •  0
  •   Eli Burke    13 年前

    Satya提出的设置max_num=0的建议非常有效。

    根据ModelForm类上的Django文档:

    对于启用了javascript的浏览器的用户,提供了一个“添加另一个”链接,以便除了作为额外参数提供的入口之外,还可以添加任何数量的额外入口。

    如果当前显示的表单数超过max_num或用户未启用javascript,则不会显示动态链接。

    与常规表单集一样,您可以使用max_num和extra参数对modelformset_factory进行建模,以限制显示的额外表单的数量。

    max_num不阻止显示现有对象