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'
)