Daw*_*ian 27 python django django-admin
如何删除Django管理员中的默认删除操作?以下工作会怎样?
actions = [ ]
Run Code Online (Sandbox Code Playgroud)
Daw*_*ian 47
这有效:
def get_actions(self, request):
actions = super().get_actions(request)
if 'delete_selected' in actions:
del actions['delete_selected']
return actions
Run Code Online (Sandbox Code Playgroud)
这也是基于以下Django文档执行此操作的推荐方法:
fal*_*tru 13
在您的管理类中,定义has_delete_permission返回False:
class YourModelAdmin(admin.ModelAdmin):
...
def has_delete_permission(self, request, obj=None):
return False
Run Code Online (Sandbox Code Playgroud)
然后,它不会显示删除按钮,也不允许您删除管理界面中的对象.
您可以在网站范围内停用"删除所选"操作:
from django.contrib.admin import site
site.disable_action('delete_selected')
Run Code Online (Sandbox Code Playgroud)
当您需要包含此操作时,请添加'delete_selected'到操作列表:
actions = ['delete_selected']
Run Code Online (Sandbox Code Playgroud)
如果要删除所有操作:
class UserAdmin(admin.ModelAdmin):
model = User
actions = None
Run Code Online (Sandbox Code Playgroud)
如果您想要一些特定的动作:
class UserAdmin(admin.ModelAdmin):
model = User
actions = ['name_of_action_you_want_to_keep']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14410 次 |
| 最近记录: |