id,summary,reporter,owner,description,type,status,component,version,severity,resolution,keywords,cc,stage,has_patch,needs_docs,needs_tests,needs_better_patch,easy,ui_ux 29723,Admin crashes if InlineModelAdmin.has_add_permission() doesn't accept the obj argument,Aymeric Augustin,Tim Graham,"The release notes suggest that InlineModelAdmin.has_add_permission() methods that don’t accept obj as the second positional argument will be supported until Django 3.0: > Support for InlineModelAdmin.has_add_permission() methods that don’t accept obj as the second positional argument will be removed in Django 3.0. This doesn't appear to be true in my experience. I have this method defined on an InlineModelAdmin: {{{ def has_add_permission(self, request): return False }}} I'm getting this traceback with Django 2.1: {{{ File ""/home/ubuntu/.pyenv/versions/3.6.2/envs/cupido/lib/python3.6/site-packages/django/core/handlers/exception.py"" in inner 34. response = get_response(request) File ""/home/ubuntu/.pyenv/versions/3.6.2/envs/cupido/lib/python3.6/site-packages/django/core/handlers/base.py"" in _get_response 126. response = self.process_exception_by_middleware(e, request) File ""/home/ubuntu/.pyenv/versions/3.6.2/envs/cupido/lib/python3.6/site-packages/django/core/handlers/base.py"" in _get_response 124. response = wrapped_callback(request, *callback_args, **callback_kwargs) File ""/home/ubuntu/.pyenv/versions/3.6.2/envs/cupido/lib/python3.6/site-packages/django/contrib/admin/options.py"" in wrapper 607. return self.admin_site.admin_view(view)(*args, **kwargs) File ""/home/ubuntu/.pyenv/versions/3.6.2/envs/cupido/lib/python3.6/site-packages/django/utils/decorators.py"" in _wrapped_view 142. response = view_func(request, *args, **kwargs) File ""/home/ubuntu/.pyenv/versions/3.6.2/envs/cupido/lib/python3.6/site-packages/django/views/decorators/cache.py"" in _wrapped_view_func 44. response = view_func(request, *args, **kwargs) File ""/home/ubuntu/.pyenv/versions/3.6.2/envs/cupido/lib/python3.6/site-packages/django/contrib/admin/sites.py"" in inner 223. return view(request, *args, **kwargs) File ""/home/ubuntu/.pyenv/versions/3.6.2/envs/cupido/lib/python3.6/site-packages/django/contrib/admin/options.py"" in add_view 1647. return self.changeform_view(request, None, form_url, extra_context) File ""/home/ubuntu/.pyenv/versions/3.6.2/envs/cupido/lib/python3.6/site-packages/django/utils/decorators.py"" in _wrapper 45. return bound_method(*args, **kwargs) File ""/home/ubuntu/.pyenv/versions/3.6.2/envs/cupido/lib/python3.6/site-packages/django/utils/decorators.py"" in _wrapped_view 142. response = view_func(request, *args, **kwargs) File ""/home/ubuntu/.pyenv/versions/3.6.2/envs/cupido/lib/python3.6/site-packages/django/contrib/admin/options.py"" in changeform_view 1536. return self._changeform_view(request, object_id, form_url, extra_context) File ""/home/ubuntu/.pyenv/versions/3.6.2/envs/cupido/lib/python3.6/site-packages/django/contrib/admin/options.py"" in _changeform_view 1590. formsets, inline_instances = self._create_formsets(request, form.instance, change=False) File ""/home/ubuntu/.pyenv/versions/3.6.2/envs/cupido/lib/python3.6/site-packages/django/contrib/admin/options.py"" in _create_formsets 1945. for FormSet, inline in self.get_formsets_with_inlines(*get_formsets_args): File ""/home/ubuntu/.pyenv/versions/3.6.2/envs/cupido/lib/python3.6/site-packages/django/contrib/admin/options.py"" in get_formsets_with_inlines 795. yield inline.get_formset(request, obj), inline File ""/home/ubuntu/.pyenv/versions/3.6.2/envs/cupido/lib/python3.6/site-packages/django/contrib/admin/options.py"" in get_formset 2055. can_add = self.has_add_permission(request, obj) if request else True Exception Type: TypeError at /admin/cupido/notification/add/ Exception Value: has_add_permission() takes 2 positional arguments but 3 were given }}}",Bug,closed,contrib.admin,2.1,Release blocker,fixed,,,Ready for checkin,1,0,0,0,0,0