2
2
from django .db import transaction , router
3
3
from django .http import Http404 , HttpResponseRedirect
4
4
from django .template .response import TemplateResponse
5
+ from django import VERSION as django_version
5
6
from django .utils import six
6
7
from django .utils .encoding import force_text
7
8
from django .utils .html import escape
17
18
class DeleteAdminView (ModelAdminView ):
18
19
delete_confirmation_template = None
19
20
21
+ def __init__ (self , request , * args , ** kwargs ):
22
+ if django_version > (2 , 0 ):
23
+ for model in self .admin_site ._registry :
24
+ if not hasattr (self .admin_site ._registry [model ], 'has_delete_permission' ):
25
+ setattr (self .admin_site ._registry [model ], 'has_delete_permission' , self .has_delete_permission )
26
+ super (DeleteAdminView , self ).__init__ (request , * args , ** kwargs )
27
+
20
28
def init_request (self , object_id , * args , ** kwargs ):
21
29
"The 'delete' admin view for this model."
22
30
self .obj = self .get_object (unquote (object_id ))
@@ -31,8 +39,12 @@ def init_request(self, object_id, *args, **kwargs):
31
39
32
40
# Populate deleted_objects, a data structure of all related objects that
33
41
# will also be deleted.
34
- (self .deleted_objects , model_count , self .perms_needed , self .protected ) = get_deleted_objects (
35
- [self .obj ], self .opts , self .request .user , self .admin_site , using )
42
+ if django_version > (2 , 0 ):
43
+ (self .deleted_objects , model_count , self .perms_needed , self .protected ) = get_deleted_objects (
44
+ [self .obj ], self .opts , self .admin_site )
45
+ else :
46
+ (self .deleted_objects , model_count , self .perms_needed , self .protected ) = get_deleted_objects (
47
+ [self .obj ], self .opts , self .request .user , self .admin_site , using )
36
48
37
49
@csrf_protect_m
38
50
@filter_hook
1 commit comments
liuyuyefz commentedon Sep 24, 2018
好好检查一下这段代码
```
(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)