diff options
Diffstat (limited to 'django/contrib/admin/options.py')
| -rw-r--r-- | django/contrib/admin/options.py | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index 474c4226f8..4175eca614 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -584,13 +584,8 @@ class ModelAdmin(BaseModelAdmin): inline_instances = [] for inline_class in self.inlines: inline = inline_class(self.model, self.admin_site) - # RemovedInDjango30Warning: obj will be a required argument. - args = get_func_args(inline.has_add_permission) - if 'obj' in args: - inline_has_add_permission = inline.has_add_permission(request, obj) - else: - inline_has_add_permission = inline.has_add_permission(request) if request: + inline_has_add_permission = inline._has_add_permission(request, obj) if not (inline.has_view_or_change_permission(request, obj) or inline_has_add_permission or inline.has_delete_permission(request, obj)): @@ -1483,7 +1478,7 @@ class ModelAdmin(BaseModelAdmin): for inline, formset in zip(inline_instances, formsets): fieldsets = list(inline.get_fieldsets(request, obj)) readonly = list(inline.get_readonly_fields(request, obj)) - has_add_permission = inline.has_add_permission(request, obj) + has_add_permission = inline._has_add_permission(request, obj) has_change_permission = inline.has_change_permission(request, obj) has_delete_permission = inline.has_delete_permission(request, obj) has_view_permission = inline.has_view_permission(request, obj) @@ -2001,6 +1996,11 @@ class InlineModelAdmin(BaseModelAdmin): js.append('collapse%s.js' % extra) return forms.Media(js=['admin/js/%s' % url for url in js]) + def _has_add_permission(self, request, obj): + # RemovedInDjango30Warning: obj will be a required argument. + args = get_func_args(self.has_add_permission) + return self.has_add_permission(request, obj) if 'obj' in args else self.has_add_permission(request) + def get_extra(self, request, obj=None, **kwargs): """Hook for customizing the number of extra inline forms.""" return self.extra @@ -2046,7 +2046,7 @@ class InlineModelAdmin(BaseModelAdmin): base_model_form = defaults['form'] can_change = self.has_change_permission(request, obj) if request else True - can_add = self.has_add_permission(request, obj) if request else True + can_add = self._has_add_permission(request, obj) if request else True class DeleteProtectedModelForm(base_model_form): |
