【发布时间】:2021-03-26 18:30:30
【问题描述】:
我想知道是否有办法在我的 Django urls.py 中只包含特定的 url 端点。
假设我有一个名为 auth 的应用,其中包含 auth/urls.py
urlpatterns = [
url(r'^password/reset/$', PasswordResetView.as_view(),
name='rest_password_reset'),
url(r'^password/reset/confirm/$', PasswordResetConfirmView.as_view(),
name='rest_password_reset_confirm'),
url(r'^login/$', LoginView.as_view(), name='rest_login'),
url(r'^logout/$', LogoutView.as_view(), name='rest_logout'),
url(r'^user/$', UserDetailsView.as_view(), name='rest_user_details'),
url(r'^password/change/$', PasswordChangeView.as_view(),
name='rest_password_change'),
]
现在我有一个这样的 urls.py:
urlpatterns = [
path('/', include('dj_rest_auth.urls'))
]
这包括来自 auth/urls.py 的所有端点。
有没有办法选择(在 urls.py 中)要包含的 URL?假设我只想在我的 urls.py 中包含登录和注销。
urlpatterns = [
path('/', include('dj_rest_auth.urls.rest_login')),
path('/', include('dj_rest_auth.urls.rest_logout'))
]
类似的东西,我怎样才能让它工作?
【问题讨论】:
-
你为什么想要那个?会不会是“隐藏”一些网址?在这种情况下,例如,看看 auth 装饰器。我相信不可能使用 Django 的
include来仅包含部分 URL,我从它的描述 here 中得出这一点。 -
没错,就是隐藏一些网址。由于应用程序是导入的,我不想修改它。我只是想隐藏不需要的网址。我会看看 auth 装饰器,谢谢。
-
不错。 “我不想修改它”是多少?装饰器可以根据条件(通常是登录状态)重定向到另一个页面,实现它就像在相应的路由函数/方法实现之前添加一行一样简单。