'drf_yasg swagger library problem with django_elasticsearch_dsl_drf

Django drf_yasg swagger library seems to have problem with django_elasticsearch_dsl_drf. When I define a viewset of django_elasticsearch_dsl_drf.viewsets.DocumentViewSet the following error will rise in drf_yasg library. Anybody has ever encountered this problem? I did not find any related topic for this issue

    [2022-02-16 15:22:11] ERROR|django.request|Internal Server Error: /swagger/
Traceback (most recent call last):
  File "/home/hamed/PycharmProjects/boursrefsengine/venv/lib/python3.8/site-packages/asgiref/sync.py", line 451, in thread_handler
    raise exc_info[1]
  File "/home/hamed/PycharmProjects/boursrefsengine/venv/lib/python3.8/site-packages/django/core/handlers/exception.py", line 38, in inner
    response = await get_response(request)
  File "/home/hamed/PycharmProjects/boursrefsengine/venv/lib/python3.8/site-packages/django/core/handlers/base.py", line 233, in _get_response_async
    response = await wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/hamed/PycharmProjects/boursrefsengine/venv/lib/python3.8/site-packages/asgiref/sync.py", line 414, in __call__
    ret = await asyncio.wait_for(future, timeout=None)
  File "/usr/lib/python3.8/asyncio/tasks.py", line 455, in wait_for
    return await fut
  File "/home/hamed/PycharmProjects/boursrefsengine/venv/lib/python3.8/site-packages/asgiref/current_thread_executor.py", line 22, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/home/hamed/PycharmProjects/boursrefsengine/venv/lib/python3.8/site-packages/asgiref/sync.py", line 455, in thread_handler
    return func(*args, **kwargs)
  File "/home/hamed/PycharmProjects/boursrefsengine/venv/lib/python3.8/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
    return view_func(*args, **kwargs)
  File "/home/hamed/PycharmProjects/boursrefsengine/venv/lib/python3.8/site-packages/django/views/generic/base.py", line 70, in view
    return self.dispatch(request, *args, **kwargs)
  File "/home/hamed/PycharmProjects/boursrefsengine/venv/lib/python3.8/site-packages/rest_framework/views.py", line 509, in dispatch
    response = self.handle_exception(exc)
  File "/home/hamed/PycharmProjects/boursrefsengine/venv/lib/python3.8/site-packages/rest_framework/views.py", line 469, in handle_exception
    self.raise_uncaught_exception(exc)
  File "/home/hamed/PycharmProjects/boursrefsengine/venv/lib/python3.8/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
    raise exc
  File "/home/hamed/PycharmProjects/boursrefsengine/venv/lib/python3.8/site-packages/rest_framework/views.py", line 506, in dispatch
    response = handler(request, *args, **kwargs)
  File "/home/hamed/PycharmProjects/boursrefsengine/venv/lib/python3.8/site-packages/drf_yasg/views.py", line 94, in get
    schema = generator.get_schema(request, self.public)
  File "/home/hamed/PycharmProjects/boursrefsengine/venv/lib/python3.8/site-packages/drf_yasg/generators.py", line 242, in get_schema
    endpoints = self.get_endpoints(request)
  File "/home/hamed/PycharmProjects/boursrefsengine/venv/lib/python3.8/site-packages/drf_yasg/generators.py", line 318, in get_endpoints
    path = self.coerce_path(path, view)
  File "/home/hamed/PycharmProjects/boursrefsengine/venv/lib/python3.8/site-packages/drf_yasg/generators.py", line 298, in coerce_path
    field_name = get_pk_name(model)
  File "/home/hamed/PycharmProjects/boursrefsengine/venv/lib/python3.8/site-packages/rest_framework/schemas/generators.py", line 23, in get_pk_name
    return _get_pk(meta).name
  File "/home/hamed/PycharmProjects/boursrefsengine/venv/lib/python3.8/site-packages/rest_framework/utils/model_meta.py", line 50, in _get_pk
    rel = pk.remote_field
AttributeError: 'NoneType' object has no attribute 'remote_field'
HTTP GET /swagger/?format=openapi 500 [1.06, 127.0.0.1:46122]
[2022-02-16 15:22:11] ERROR|django.channels.server|HTTP GET /swagger/?format=openapi 500 [1.06, 127.0.0.1:46122]


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source