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