Django-rest-framework: تعطل include_docs_urls عند الترقية من 3.9 إلى 3.10

تم إنشاؤها على ١٩ يوليو ٢٠١٩  ·  3تعليقات  ·  مصدر: encode/django-rest-framework

قائمة تدقيق

  • [] لقد تحققت من وجود هذه المشكلة مقابل فرع master من إطار عمل Django REST.
  • [x] لقد بحثت عن مشكلات مماثلة في كل من التذاكر المفتوحة والمغلقة ولا يمكنني العثور على نسخة مكررة.
  • [x] هذا ليس سؤال استخدام. (يجب توجيه هؤلاء إلى مجموعة المناقشة بدلاً من ذلك).
  • [x] لا يمكن التعامل مع هذا كمكتبة طرف ثالث. (نفضل أن تكون الوظائف الجديدة في شكل مكتبات تابعة لجهات خارجية حيثما أمكن ذلك.)
  • [x] لقد اختزلت المشكلة إلى أبسط حالة ممكنة.
  • [] لقد قمت بتضمين اختبار فاشل كطلب سحب. (إذا لم تتمكن من القيام بذلك ، فلا يزال بإمكاننا قبول المشكلة.)

خطوات التكاثر

استخدم djangorestframework == 3.10.0

في urls.py :

from django.urls import path
from rest_framework.documentation import include_docs_urls

urlpatterns = [
    path("docs/", include_docs_urls(title="Platinum API docs")),
]

قم بزيارة المتصفح /docs/ .

سلوك متوقع

لا تحطم من فضلك.

السلوك الفعلي

2019-07-19 11:41:21,446 [django.request] [ERROR] Internal Server Error: /docs/
Traceback (most recent call last):
  File "/home/thnee/.pyenv/versions/lookatech-platinum/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/home/thnee/.pyenv/versions/lookatech-platinum/lib/python3.6/site-packages/django/core/handlers/base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/home/thnee/.pyenv/versions/lookatech-platinum/lib/python3.6/site-packages/django/core/handlers/base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/thnee/.pyenv/versions/lookatech-platinum/lib/python3.6/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
    return view_func(*args, **kwargs)
  File "/home/thnee/.pyenv/versions/lookatech-platinum/lib/python3.6/site-packages/django/views/generic/base.py", line 71, in view
    return self.dispatch(request, *args, **kwargs)
  File "/home/thnee/.pyenv/versions/lookatech-platinum/lib/python3.6/site-packages/rest_framework/views.py", line 497, in dispatch
    response = self.handle_exception(exc)
  File "/home/thnee/.pyenv/versions/lookatech-platinum/lib/python3.6/site-packages/rest_framework/schemas/views.py", line 48, in handle_exception
    return super().handle_exception(exc)
  File "/home/thnee/.pyenv/versions/lookatech-platinum/lib/python3.6/site-packages/rest_framework/views.py", line 457, in handle_exception
    self.raise_uncaught_exception(exc)
  File "/home/thnee/.pyenv/versions/lookatech-platinum/lib/python3.6/site-packages/rest_framework/views.py", line 468, in raise_uncaught_exception
    raise exc
  File "/home/thnee/.pyenv/versions/lookatech-platinum/lib/python3.6/site-packages/rest_framework/views.py", line 494, in dispatch
    response = handler(request, *args, **kwargs)
  File "/home/thnee/.pyenv/versions/lookatech-platinum/lib/python3.6/site-packages/rest_framework/schemas/views.py", line 37, in get
    schema = self.schema_generator.get_schema(request, self.public)
  File "/home/thnee/.pyenv/versions/lookatech-platinum/lib/python3.6/site-packages/rest_framework/schemas/coreapi.py", line 153, in get_schema
    links = self.get_links(None if public else request)
  File "/home/thnee/.pyenv/versions/lookatech-platinum/lib/python3.6/site-packages/rest_framework/schemas/coreapi.py", line 140, in get_links
    link = view.schema.get_link(path, method, base_url=self.url)
AttributeError: 'AutoSchema' object has no attribute 'get_link'
2019-07-19 11:41:21,449 [django.server] [ERROR] "GET /docs/ HTTP/1.1" 500 27

التعليق الأكثر فائدة

نسخة مكررة من # 6809.

راجع ملاحظات الإصدار 3.10 حول متابعة استخدام CoreAPI .

ال 3 كومينتر

نفس المشكلة مع الإصدار 3.10.1. يؤدي الرجوع إلى الإصدار 3.9.4 إلى حل المشكلة. تم إجراء كل هذه الاختبارات باستخدام coreapi 2.3.3 و django 2.2.3.

نسخة مكررة من # 6809.

راجع ملاحظات الإصدار 3.10 حول متابعة استخدام CoreAPI .

أضف السطر

مشروع / settings.py

REST_FRAMEWORK = { ... 'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema' }

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات