【问题标题】:replace Add with Get on django admin site在 django 管理站点上用 Get 替换 Add
【发布时间】:2011-07-21 20:55:32
【问题描述】:

我有一个模型,我不希望用户手动添加/删除对象。相反,我想要一些 Get 按钮,一旦单击它,它就会执行一些代码并自动更新数据库。 我可以通过添加自己的管理操作来做类似的事情。但是,默认情况下添加管理操作意味着您的模型必须至少有一个对象,然后选择该对象并执行一些操作。 我希望能够在一个空模型上执行我的自定义操作(如果我可以在索引页面上将 Add 按钮替换为 Get 按钮,那将是完美的)。有没有办法这样做?谢谢!

【问题讨论】:

    标签: django django-admin


    【解决方案1】:

    您可以覆盖 django 管理模型的 add_view 方法,并根据需要做任何您想做的事情。浏览一下 ModelAdmin 代码,你可以看到它默认的作用

    您还可以查看此项目:https://github.com/imtapps/django-admin-ext 并查看如何为管理员注册您自己的 url 的示例...这样您就可以使您的视图类似于 admin/myproject/myapp/model/get让它做你想做的事......

    【讨论】:

      【解决方案2】:
      1. 您可以通过删除用户的“可以添加模型名称”权限来阻止用户添加新对象。但是,如果他们是超级用户,实际上不会阻止他们这样做。

      2. 管理操作旨在在模型的特定实例上运行;如果那不是您的代码正在做的事情,您可能不应该走那条特定的路线。您可以 override the admin template 为您的模型添加新按钮或链接到您的自定义视图。您也可以通过从模板中删除添加按钮来完全删除它,但我建议改用权限。

      【讨论】:

        猜你喜欢
        • 2010-12-23
        • 2014-11-18
        • 2021-04-01
        • 2011-09-23
        • 2015-06-14
        • 2015-09-08
        • 2017-10-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多