我有一个django应用,我要在其中禁用用户删除功能。我试图禁用操作并将删除权限设置为false。但是他们都不起作用。
from django.contrib.auth.models import User
class UserProfileAdmin(UserAdmin):
actions = None
要么
def has_delete_permission(self, request):
return False
要么
def get_actions(self, request):
actions = super(UserProfileAdmin, self).get_actions(request)
if 'delete_selected' in actions:
del actions['delete_selected']
return actions
admin.site.unregister(User)
admin.site.register(User, UserProfileAdmin)
但是,当我使用UserAdmin向用户信息添加内联时,它工作正常。因此,请向我建议一种在django admin中禁用用户删除的方法。提前致谢。
最佳答案
覆盖ModelAdmin.has_delete_permission
应该可以解决问题,您的调用签名不正确,缺少obj
参数
class UserProfileAdmin(UserAdmin):
def has_delete_permission(self, request, obj=None): # note the obj=None
return False
此外,只需
return False
即可阻止包括管理员在内的所有员工删除Django Admin中的项目,您可能只想调整User/Group
权限,以通过删除他们不希望其删除User()
的员工来防止他们删除delete_userprofile
。 cc>和delete_user
权限。
关于django - Django admin-禁用用户删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12475847/