Skip to content

Commit

Permalink
修改在详情页删除数据报的错误
Browse files Browse the repository at this point in the history
  • Loading branch information
wgbbiao committed Sep 17, 2018
1 parent 0751cd9 commit 0b63e39
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions xadmin/views/delete.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from django.db import transaction, router
from django.http import Http404, HttpResponseRedirect
from django.template.response import TemplateResponse
from django import VERSION as django_version
from django.utils import six
from django.utils.encoding import force_text
from django.utils.html import escape
Expand All @@ -17,6 +18,13 @@
class DeleteAdminView(ModelAdminView):
delete_confirmation_template = None

def __init__(self, request, *args, **kwargs):
if django_version > (2, 0):
for model in self.admin_site._registry:
if not hasattr(self.admin_site._registry[model], 'has_delete_permission'):
setattr(self.admin_site._registry[model], 'has_delete_permission', self.has_delete_permission)
super(DeleteAdminView, self).__init__(request, *args, **kwargs)

def init_request(self, object_id, *args, **kwargs):
"The 'delete' admin view for this model."
self.obj = self.get_object(unquote(object_id))
Expand All @@ -31,8 +39,12 @@ def init_request(self, object_id, *args, **kwargs):

# Populate deleted_objects, a data structure of all related objects that
# will also be deleted.
(self.deleted_objects, model_count, self.perms_needed, self.protected) = get_deleted_objects(
[self.obj], self.opts, self.request.user, self.admin_site, using)
if django_version > (2, 0):
(self.deleted_objects, model_count, self.perms_needed, self.protected) = get_deleted_objects(
[self.obj], self.opts, self.admin_site)
else:
(self.deleted_objects, model_count, self.perms_needed, self.protected) = get_deleted_objects(
[self.obj], self.opts, self.request.user, self.admin_site, using)

@csrf_protect_m
@filter_hook
Expand Down

1 comment on commit 0b63e39

@liuyuyefz
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

好好检查一下这段代码
```
(self.deleted_objects, model_count, self.perms_needed, self.protected) = get_deleted_objects(
[self.obj], self.opts, self.request.user, self.admin_site, using)
if django_version > (2, 0):
(self.deleted_objects, model_count, self.perms_needed, self.protected) = get_deleted_objects(
[self.obj], self.opts, self.admin_site)
else:
(self.deleted_objects, model_count, self.perms_needed, self.protected) = get_deleted_objects(
[self.obj], self.opts, self.request.user, self.admin_site, using)

Please sign in to comment.