def _folder_form_delete(self, request, obj):
if not self.has_delete_permission(request, obj):
raise PermissionDenied
using = router.db_for_write(obj.__class__)
# Populate deleted_objects, a data structure of all related objects
# that will also be deleted.
(deleted_objects, model_count, perms_needed, protected) = get_deleted_objects( # noqa
[obj], obj._meta, request.user, self.admin_site, using)
if protected or perms_needed:
self.message_user(
request,
_('Cannot delete %(name)s') % {'name': obj._meta.verbose_name},
messages.ERROR,
)
elif len(deleted_objects) > 1:
self.message_user(
request,
_('Cannot delete %(name)s because of related objects (%(related)s)') % { # noqa
'name': obj._meta.verbose_name,
'related': ', '.join(
'%s %s' % (count, name)
for name, count in model_count.items()
),
},
messages.ERROR,
)
else:
obj.delete()
self.message_user(
request,
_('The folder "%s" was deleted successfully.') % obj,
messages.SUCCESS)
return self.redirect_to_folder(request, obj.parent_id)
评论列表
文章目录