22from django .db import transaction , router
33from django .http import Http404 , HttpResponseRedirect
44from django .template .response import TemplateResponse
5+ from django import VERSION as django_version
56from django .utils import six
67from django .utils .encoding import force_text
78from django .utils .html import escape
1718class DeleteAdminView (ModelAdminView ):
1819 delete_confirmation_template = None
1920
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+
2028 def init_request (self , object_id , * args , ** kwargs ):
2129 "The 'delete' admin view for this model."
2230 self .obj = self .get_object (unquote (object_id ))
@@ -31,8 +39,12 @@ def init_request(self, object_id, *args, **kwargs):
3139
3240 # Populate deleted_objects, a data structure of all related objects that
3341 # 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 )
3648
3749 @csrf_protect_m
3850 @filter_hook
0 commit comments