#29723: Backwards-incompatible change of has_add_permission in 2.1
--------------------------------------------+------------------------
Reporter: Aymeric Augustin | Owner: nobody
Type: Bug | Status: new
Component: contrib.admin | Version: 2.1
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
--------------------------------------------+------------------------
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
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/29723>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/052.c9604ab0528d9f9b180e9f5e4cd73f2b%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.