Django Rest Framework обратный и SimpleRouter
как использовать DRF в reverse
чтобы вызвать сложный URL из SimpleRouter
?
мой URL находится в двух местах, один для команд, и один для игр, следующим образом:
лига.URL-адреса:
url(r'^team/', include('teams.urls')),
команда.URL-адреса:
router = SimpleRouter()
router.register(r'game', GameViewSet, 'games')
Я пытаюсь reverse
url для обновления игры. Основываясь на DRF SimpleRouter, это должно быть " / team / {pk} / game / {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
1 ответов
YPCrumble, вы хотели бы вызвать URL
С distinct kwargs
. The URL
regex работает таким образом, чтобы обрабатывать 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'
)