用django管理站点上的Get替换Add

时间:2011-07-21 20:55:32

标签: django django-admin

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

2 个答案:

答案 0 :(得分:0)

您可以覆盖django管理模型的add_view方法,并根据需要执行您认为具有该视图的操作。通过ModelAdmin代码浏览,你可以看到默认情况下它的作用

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

答案 1 :(得分:0)

  1. 您可以通过删除该用户的“Can add ModelName”权限来阻止用户添加新对象。但是,如果他们是超级用户,实际上并不会阻止他们这样做。

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