YPC*_*ble 8 django django-urls django-rest-framework
如何使用DRF reverse来调用复杂的URL SimpleRouter?
我的网址位于两个地方,一个用于团队,另一个用于游戏,如下所示:
league.urls:
url(r'^team/', include('teams.urls')),
Run Code Online (Sandbox Code Playgroud)
team.urls:
router = SimpleRouter()
router.register(r'game', GameViewSet, 'games')
Run Code Online (Sandbox Code Playgroud)
我正在尝试reverse更新游戏的网址.基于DRF SimpleRouter,这应该是"/ team/{pk}/game/{pk}"
我的测试是:
url = reverse('games-detail', args=[team.pk, game.pk])
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
raise error, v # invalid expression
error: redefinition of group name u'pk' as group 2; was group 1
Run Code Online (Sandbox Code Playgroud)
Aar*_*ier 13
YPCrumble,你想要URL与不同的人打电话kwargs.在URL正则表达式的工作的方式来处理kwargs.例如:
# python reverse url
url = reverse('games-detail', kwargs={'team_pk': 1, 'group_pk':1})
# url regex
url(
r'^team/(?P<team_pk>\d+)/group/(?P<group_pk>\d+)/$',
view.SimpleRouterDetailView.as_view(),
name='games-detail'
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8841 次 |
| 最近记录: |