Python 如何在django中只添加第三方应用程序所需的url?

Python 如何在django中只添加第三方应用程序所需的url?,python,django,rest,django-rest-framework,Python,Django,Rest,Django Rest Framework,我的url:我已经包括了第三方应用程序django djoser。有几个第三方应用程序的URL。但我只想要具体的 urlpatterns = [ path('apis/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'), path('apis/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'), path('admin/', admin

我的url:我已经包括了第三方应用程序django djoser。有几个第三方应用程序的URL。但我只想要具体的

urlpatterns = [
path('apis/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
path('apis/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
path('admin/', admin.site.urls),
path('auth/', include('djoser.urls')),
path("auth/", include("djoser.urls.jwt")),
]
以下是从djoser获得的所有URL。但我只需要一些URL,而忽略了其他URL

^auth/ ^users/$ [name='user-list']
^auth/ ^users\.(?P<format>[a-z0-9]+)/?$ [name='user-list']
^auth/ ^users/activation/$ [name='user-activation']
^auth/ ^users/activation\.(?P<format>[a-z0-9]+)/?$ [name='user-activation']
^auth/ ^users/me/$ [name='user-me']
^auth/ ^users/me\.(?P<format>[a-z0-9]+)/?$ [name='user-me']
^auth/ ^users/resend_activation/$ [name='user-resend-activation']
^auth/ ^users/resend_activation\.(?P<format>[a-z0-9]+)/?$ [name='user-resend-activation']
^auth/ ^users/reset_password/$ [name='user-reset-password']
^auth/ ^users/reset_password\.(?P<format>[a-z0-9]+)/?$ [name='user-reset-password']
^auth/ ^users/reset_password_confirm/$ [name='user-reset-password-confirm']
^auth/ ^users/reset_password_confirm\.(?P<format>[a-z0-9]+)/?$ [name='user-reset-password-confirm']
^auth/ ^users/reset_username/$ [name='user-reset-username']
^auth/ ^users/reset_username\.(?P<format>[a-z0-9]+)/?$ [name='user-reset-username']
^auth/ ^users/reset_username_confirm/$ [name='user-reset-username-confirm']
^auth/ ^users/reset_username_confirm\.(?P<format>[a-z0-9]+)/?$ [name='user-reset-username-confirm']
^auth/ ^users/set_password/$ [name='user-set-password']
^auth/ ^users/set_password\.(?P<format>[a-z0-9]+)/?$ [name='user-set-password']
^auth/ ^users/set_username/$ [name='user-set-username']
^auth/ ^users/set_username\.(?P<format>[a-z0-9]+)/?$ [name='user-set-username']
^auth/ ^users/(?P<id>[^/.]+)/$ [name='user-detail']
^auth/ ^users/(?P<id>[^/.]+)\.(?P<format>[a-z0-9]+)/?$ [name='user-detail']
^auth/ ^$ [name='api-root']
^auth/ ^\.(?P<format>[a-z0-9]+)/?$ [name='api-root']
^auth/^users/$[name='user-list']
^验证/^users\(?P[a-z0-9]+)/?$[name='user-list']
^auth/^users/activation/$[name='user-activation']
^验证/^users/activation\(?P[a-z0-9]+)/?$[name='user-activation']
^auth/^users/me/$[name='user-me']
^auth/^users/me\(?P[a-z0-9]+)/?$[name='user-me']
^auth/^users/ressend\u activation/$[name='user-ressend-activation']
^auth/^users/ressend_activation\(?P[a-z0-9]+)/?$[name='user-ressend-activation']
^auth/^users/reset_password/$[name='user-reset-password']
^验证/^users/reset_password\(?P[a-z0-9]+)/?$[name='user-reset-password']
^auth/^users/reset\u password\u confirm/$[name='user-reset-password-confirm']
^验证/^users/reset\u password\u confirm\(?P[a-z0-9]+)/?$[name='user-reset-password-confirm']
^auth/^users/reset_username/$[name='user-reset-username']
^验证/^users/reset_username\(?P[a-z0-9]+)/?$[name='user-reset-username']
^auth/^users/reset\u username\u confirm/$[name='user-reset-username-confirm']
^验证/^users/reset\u username\u confirm\(?P[a-z0-9]+)/?$[name='user-reset-username-confirm']
^auth/^users/set_password/$[name='user-set-password']
^验证/^users/set_password\(?P[a-z0-9]+)/?$[name='user-set-password']
^auth/^users/set_username/$[name='user-set-username']
^auth/^users/set_username\(?P[a-z0-9]+)/?$[name='user-set-username']
^auth/^users/(?P[^/]+)/$[name='user-detail']
^auth/^users/(?P[^/]+)\(?P[a-z0-9]+)/?$[name='user-detail']
^auth/^$[name='api-root']
^auth/^\(?P[a-z0-9]+)/?$[name='api-root']

我唯一的选择是

  • 从djoser UserViewSet生成子视图集:

    # views.py
    from djoser.views import UserViewSet
    
    class MyViewSet(UserViewSet):
        """Put your desired views and functions here"
    
  • 然后将视图添加到URL.py

    from rest_framework.routers import DefaultRouter
    
    from .views import MyViewSet
    
    custom_router = DefaultRouter()
    router.register("users", MyViewSet)
    
    urlpatterns = [...] #your other urls
    
    urlpatterns += [url(r'/', include(custom_router.urls))]
    

  • 希望这有帮助

    然后不要包含它们,只需重新定义所需的。@dirkgroten能否请您更具体一点?不要包含djoser.url,而是包含您自己的URL文件,在其中逐个定义它们。就像你会用你自己的网址。只需从djoser导入相关视图。例如
    path('users/',djoser.views.UserList.as\u view(),name='user\u list')
    。我不知道视图的确切名称,所以这只是一个猜测。在djoser源代码中查找它。大多数视图被定义为
    UserViewSet
    上的操作,因此上面的路径示例应该是
    path('users/',UserViewSet.as_view({'get':'list')),name='user_list')
    我应该包括序列化程序吗,查询集??