Django Rest Framework url_pattern из @action - PullRequest
0 голосов
/ 29 ноября 2018

Мне нужно передать идентификатор экземпляра после last / моего метода @action name, и я серьезно не знаю, как ...

У меня есть UserViewSet, URL которого для доступа к списку: / users / , тогда у меня есть действие, которое называется favour_posts , то есть detail = False , потому что я фильтрую по текущему зарегистрированному пользователю, а действие ссылается на сообщения пользователя, яхочу быть в состоянии передать post_id как / users / favour_posts / post_id / , потому что в этом случае он более дружелюбен для меня, чем / users / 1 / favour_posts / , который я мог бы получить настройки detail = True .

Есть ли способ сделать это?

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Вы можете использовать его следующим образом:

@action(methods=['get'], detail=False, url_path='req/(?P<post_id>\d+)')

и получить post_id в своем методе следующим образом: kwargs.get('post_id') или просто передать post_id непосредственно в ваш метод.

@action(methods=['get'], detail=False, url_path='req/(?P<post_id>\d+)')
def get_post(request, post_id):
     .....
0 голосов
/ 29 ноября 2018

Вы можете включить параметры в свой шаблон URL и передать в ваш метод user_id следующим образом:

@action(methods=['post'], detail=False, url_path='favorite_posts/(?P<user_id>\d+)', url_name='favorite-posts')
def get_favorite_post(self, request, user_id):
    # Do something
    return Response({...})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...