我有一个应用程序,我正在使用django管理员,但我的应用程序不允许删除数据,django管理员有一个delete
按钮/链接。我已删除了delete action
。
我的问题是,如何删除django中管理页面中的delete
按钮/链接?
答案 0 :(得分:8)
class MyAdmin(ModelAdmin):
def get_actions(self, request):
actions = super(MyAdmin, self).get_actions(request)
if 'delete_selected' in actions:
del actions['delete_selected']
return actions
def has_delete_permission(self, request, obj=None):
return False
如果未给出删除权限,则单个对象的“删除”按钮将消失。仍将显示更改列表“操作”(选择要应用于复选框的对象的列表),因为您可能有权删除某些对象。您可以使用上面的代码删除它们。
澄清(对于downvoters):admin检查当前用户是否具有删除权限,然后相应地显示/隐藏按钮。你写了“我的应用程序不允许删除”,所以我假设你带走了权限。超级用户不会查看权限,超级用户总是返回“是的,我有权限”。如果您希望超级用户按钮消失,则必须使用上面的代码。对于其他用户,只需根据Secator的答案取消许可。
答案 1 :(得分:7)
请勿删除或更改管理员中的任何内容。
而是删除用户/组删除给定模型的权限。如果用户没有删除权限,则删除按钮不会出现在与该模型相关的任何页面上。