Django -从Django REST API文档中获取URL?使用drf-yasg

kr98yfug  于 2023-11-20  发布在  Go
关注(0)|答案(1)|浏览(145)

如何使用当前代码从我的API文档中删除以下路径?

path('users/reset/<uidb64>/<token>/', PasswordResetConfirmView.as_view()),

字符串
我不想生成这个路径,因为它不是我的API的一部分。
我使用drf_yasg来生成re-doc和swagger文档。
我目前看到的屏幕截图:x1c 0d1x
下面是urls.py的一些功能。

url.py

from rest_framework.documentation import include_docs_urls
from rest_framework.schemas import get_schema_view
from rest_framework import permissions

from allauth.account.views import ConfirmEmailView, EmailVerificationSentView
from dj_rest_auth.views import PasswordResetConfirmView

from drf_yasg import openapi
from drf_yasg.views import get_schema_view

API_TITLE = ‘Test API
API_DESCRIPTION = ‘Test ‘Description

schema_view = get_schema_view(
   openapi.Info(
      title=“title-test”,
      default_version='v1',
      description=“blah blah.”,
   ),
   public=True,
   permission_classes=(permissions.IsAuthenticated,),
)

urlpatterns = [

    # AllAuth Authentication
    path('accounts/', include('allauth.urls')),

    # Django REST API Paths
    path('api/', include('api.urls')),
    path('api-auth/', include('rest_framework.urls')),

    # ConfirmEmailView Needs to be defined before the registration path
    path('api/dj-rest-auth/registration/account-confirm-email/<str:key>/',
         ConfirmEmailView.as_view()), 

    path('api/dj-rest-auth/', include('dj_rest_auth.urls')),
    path('api/dj-rest-auth/registration/', include('dj_rest_auth.registration.urls')),
    path('api/dj-rest-auth/registration/account-confirm-email/',
         EmailVerificationSentView.as_view(), name='account_email_verification_sent'),
    # path('api/dj-rest-auth/reset/<uidb64>/<token>/', PasswordResetConfirmView.as_view()),

    # API Documentation Paths
    path('docs/', include_docs_urls(title="GameStation API", description=API_DESCRIPTION)),
    # path('schema/', schema_view),
    path('swagger<format>/', schema_view.without_ui(cache_timeout=0), name='schema-json'),
    path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
    path('redoc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),

   ## This path is what I’m trying to remove
    path('users/reset/<uidb64>/<token>/', PasswordResetConfirmView.as_view()),

]

hfsqlsce

hfsqlsce1#

因此,而不是排除:

path('users/reset/<uidb64>/<token>/', PasswordResetConfirmView.as_view()),

字符串
我把它完全删除了。在那个网址被删除后,我的文档相应地读起来:x1c 0d1x
此外,当用户输入密码重置邮件中显示的URL时,我的后端看起来是这样的:

这很好用,因为我现在使用allauth进行注册/身份验证,这只适用于django后端API的东西。

**旁注:**这只发生在django后端。当用户在前端填写密码重置表单时,得到的url如下:

accounts/password/reset/key/xxx.../


不知道为什么有区别。但确实有区别。
如果我需要开发人员用ID确认令牌,我可以直接指向他们:

api/dj-rest-auth/password/reset/confirm/

相关问题