如何使用DRF的reverse
从SimpleRouter
调用复杂的URL?Django Rest Framework反向和SimpleRouter
我的URL是在两个地方,一个是团队,以及一个游戏,具体如下:
league.urls:
url(r'^team/', include('teams.urls')),
team.urls:
router = SimpleRouter()
router.register(r'game', GameViewSet, 'games')
我试图以reverse
的网址更新游戏。基于该DRF SimpleRouter,这应该是 “/团队/ {} PK /游戏/ {} PK”
我的测试呼吁:
url = reverse('games-detail', args=[team.pk, game.pk])
但我发现了以下错误:
raise error, v # invalid expression
error: redefinition of group name u'pk' as group 2; was group 1
你试过把它们声明为'kwargs'并且调用URL的方式吗? – 2015-03-03 01:06:41
@AronYsidoro谢谢 - 这可能是问题所在。我只需要调用url = reverse('teams-detail',kwargs = {'pk':game.team.pk,'pk':game.pk})在这两个层次上,我使用pk来识别团队/游戏。这是一个问题,还是有另一种方法使用kwargs来调用URL? 这不起作用 - 给我和以前一样的错误。所以要么我错过了一些东西,要么有一个更好的方法来调用这个'reverse' :)。再次感谢您的帮助! – YPCrumble 2015-03-03 01:19:33