fuz*_*zes 2 python django django-rest-framework
我有民意调查应用程序
以下是我的根网址
urlpatterns = [
path('poll/', include('myproject.poll.urls')),
]
Run Code Online (Sandbox Code Playgroud)
我有应用程序网址
router = DefaultRouter()
router.register(r'', PollViewSet)
urlpatterns = [
path('', include(router.urls))
]
Run Code Online (Sandbox Code Playgroud)
我使用 ViewSet 所以我可以使用reverse('poll-list'),reverse('poll-detail')...
我可以访问xxx.xxx.xxx.xxx/poll并且xxx.xxx.xxx.xxx/poll/1/......
xxx.xxx.xxx.xxx/api/v1/poll/但我想在访问时重定向(映射?)网址xxx.xxx.xxx.xxx/poll
我不想更改现有的网址。
因为我想将多个应用程序的视图捆绑到一个 api url 文件中。
我怎样才能做到这一点?最好的方法是什么?
您可以通过两种方式完成此操作:
在根 url 中添加映射 url 并保持应用程序 url 不变:
根网址看起来像:
urlpatterns = [
path('poll/', include('myproject.poll.urls')),
path('api/v1/poll/', include('myproject.poll.urls')),
]
Run Code Online (Sandbox Code Playgroud)
这不会重定向,但您的 API(应用程序 URL)将从两个 URL 提供服务
添加重定向视图
from django.views.generic.base import RedirectView
urlpatterns = [
path('poll/', include('myproject.poll.urls')),
path('api/v1/poll/', RedirectView.as_view(url='/poll/')),
]
Run Code Online (Sandbox Code Playgroud)
这会将所有请求重定向xxx.xxx.xxx.xxx/api/v1/poll/到xxx.xxx.xxx.xxx/poll/
| 归档时间: |
|
| 查看次数: |
808 次 |
| 最近记录: |