Skip to content

AttributeError | 'NoneType' object has no attribute 'attname' #481

@InzGIBA

Description

@InzGIBA

An error occurs when deleting a primary object. Where polymorphic is a foreign key

Spec

Request Method: POST
Django Version: 3.1.7
Exception Type: AttributeError
Exception Value: 'NoneType' object has no attribute 'attname'
Python Version: 3.9.2

Traceback (most recent call last):

  File "/usr/local/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/local/lib/python3.9/site-packages/django/contrib/admin/options.py", line 614, in wrapper
    return self.admin_site.admin_view(view)(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/django/utils/decorators.py", line 130, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/django/views/decorators/cache.py", line 44, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/django/contrib/admin/sites.py", line 233, in inner
    return view(request, *args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/django/utils/decorators.py", line 43, in _wrapper
    return bound_method(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/django/utils/decorators.py", line 130, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/django/contrib/admin/options.py", line 1735, in changelist_view
    response = self.response_action(request, queryset=cl.get_queryset(request))
  File "/usr/local/lib/python3.9/site-packages/django/contrib/admin/options.py", line 1402, in response_action
    response = func(self, request, queryset)
  File "/usr/local/lib/python3.9/site-packages/django/contrib/admin/actions.py", line 40, in delete_selected
    modeladmin.delete_queryset(request, queryset)
  File "/usr/local/lib/python3.9/site-packages/django/contrib/admin/options.py", line 1103, in delete_queryset
    queryset.delete()
  File "/usr/local/lib/python3.9/site-packages/django/db/models/query.py", line 746, in delete
    collector.collect(del_query)
  File "/usr/local/lib/python3.9/site-packages/django/db/models/deletion.py", line 295, in collect
    if sub_objs:
  File "/usr/local/lib/python3.9/site-packages/django/db/models/query.py", line 291, in __bool__
    self._fetch_all()
  File "/usr/local/lib/python3.9/site-packages/django/db/models/query.py", line 1308, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
  File "/usr/local/lib/python3.9/site-packages/polymorphic/query.py", line 64, in _polymorphic_iterator
    real_results = self.queryset._get_real_instances(base_result_objects)
  File "/usr/local/lib/python3.9/site-packages/polymorphic/query.py", line 387, in _get_real_instances
    if base_object.polymorphic_ctype_id == self_model_class_id:
  File "/usr/local/lib/python3.9/site-packages/django/db/models/query_utils.py", line 149, in __get__
    instance.refresh_from_db(fields=[field_name])
  File "/usr/local/lib/python3.9/site-packages/django/db/models/base.py", line 635, in refresh_from_db
    db_instance = db_instance_qs.get()
  File "/usr/local/lib/python3.9/site-packages/django/db/models/query.py", line 425, in get
    num = len(clone)
  File "/usr/local/lib/python3.9/site-packages/django/db/models/query.py", line 269, in __len__
    self._fetch_all()
  File "/usr/local/lib/python3.9/site-packages/django/db/models/query.py", line 1308, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
  File "/usr/local/lib/python3.9/site-packages/polymorphic/query.py", line 64, in _polymorphic_iterator
    real_results = self.queryset._get_real_instances(base_result_objects)
  File "/usr/local/lib/python3.9/site-packages/polymorphic/query.py", line 460, in _get_real_instances
    real_objects_dict = {
  File "/usr/local/lib/python3.9/site-packages/polymorphic/query.py", line 461, in <dictcomp>
    getattr(real_object, pk_name): real_object
  File "/usr/local/lib/python3.9/site-packages/django/db/models/query_utils.py", line 147, in __get__
    val = self._check_parent_chain(instance)
  File "/usr/local/lib/python3.9/site-packages/django/db/models/query_utils.py", line 163, in _check_parent_chain
    return getattr(instance, link_field.attname)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions