在django管理站点上将Add替换为Get

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

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

您可以覆盖django admin模型的add_view方法,并根据需要执行该视图的任何操作。浏览ModelAdmin代码,您可以看到它在默认情况下的功能

你也可以看看这个项目:看看如何为管理员注册你自己的URL的例子。。。所以你可以让你的视图像admin/myproject/myapp/model/get这样,让它做你想做的事情

  • 您可以通过删除该用户的“可以添加模型名”权限来阻止用户添加新对象。但是,如果他们是超级用户,这并不会阻止他们这么做

  • 管理操作设计为在模型的特定实例上运行;如果您的代码不是这样做的,那么您可能不应该走那个特定的路线。您可以为您的模型添加一个新按钮或链接到自定义视图。您也可以通过从模板中删除Add按钮来完全删除它,但我建议改用权限