I've managed to disable the "Delete selected" action. Easy.
But a user can still click on an item and then there's the red Delete link at the bottom.
Take a look at the Model Meta in the django documentation. Within a Model you can add class Meta this allows additional options for your model which handles things like singular and plural naming. Show activity on this post. inside model.py or inside your customized model file add class meta within a Model Class.
Django admin allows access to users marked as is_staff=True . To disable a user from being able to access the admin, you should set is_staff=False . This holds true even if the user is a superuser. is_superuser=True .
One of the most powerful parts of Django is the automatic admin interface. It reads metadata from your models to provide a quick, model-centric interface where trusted users can manage content on your site. The admin's recommended use is limited to an organization's internal management tool.
Simple :)
class DeleteNotAllowedModelAdmin(admin.ModelAdmin): # Other stuff here def has_delete_permission(self, request, obj=None): return False
If you want to disable an specific one that isn't custom do this. In django 1.6.6 I had to extend get_actions
plus define has_delete_permission
. The has_delete_permission
solution does not get rid of the action from the dropdown for me:
class MyModelAdmin(admin.ModelAdmin): .... def get_actions(self, request): #Disable delete actions = super(MyModelAdmin, self).get_actions(request) del actions['delete_selected'] return actions def has_delete_permission(self, request, obj=None): #Disable delete return False
Not including it in actions = ['your_custom_action']
, only works for the custom actions (defs) you have defined for that model. The solution AdminSite.disable_action('delete_selected')
, disables it for all models, so you would have to explicitly include them later per each modelAdmin
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With