我正在尝试将Swagger与DRF结合使用,但它无法按预期工作。
这是我正在使用的swagger_view函数:
match insert
我的想法是登录def get_swagger_my_view(title=None, url=None, patterns=None, urlconf=None):
"""
Returns schema view which renders Swagger/OpenAPI.
"""
from rest_framework.views import APIView
class SwaggerSchemaView(APIView):
# _ignore_model_permissions = True
# permission_classes = [AllowAny]
permission_classes = [IsAuthenticated]
exclude_from_schema = True
renderer_classes = [
CoreJSONRenderer,
renderers.OpenAPIRenderer,
renderers.SwaggerUIRenderer
]
def get(self, request):
generator = SchemaGenerator(
title=title,
url=url,
patterns=patterns,
urlconf=urlconf
)
schema = generator.get_schema(request=request)
if not schema:
raise exceptions.ValidationError(
'The schema generator did not return a schema Document'
)
return Response(schema)
return SwaggerSchemaView.as_view()
(在我的情况下为/admin/
)并重定向到dashboard
这是我的swagger
SWAGGER_SETTINGS
当我转到Swagger URL时,我在这里看到:
哪个很棒。
然后,当我点击SWAGGER_SETTINGS = {
'SECURITY_DEFINITIONS': {
'api_key': {
'type': 'apiKey',
'in': 'header',
'name': 'Authorization'
}
},
'LOGIN_URL': '/dashboard/login/'
}
我带着Session Login
进入/dashboard/login
,这对我来说很棒。
但是登录后,我返回到与图像相同的视图。当我再次单击/dashboard/login/?next=/docs/
时,它登录到Session login
(在我的情况下为/admin/
),这意味着它看到我已通过身份验证,但是以某种方式,dashboard
可以没看到我通过身份验证。
也许以前有人遇到过类似的问题。
谢谢!