@fox_12
Расставляю биты, управляю заряженными частицами

Параметр в url ViewSet?

urls.py
router.register(r'my_api', MyViewSet)

views.py

class MyViewSet(viewsets.ModelViewSet):
    queryset = MyModels.objects.all()
    lookup_field = 'slug' # < удаление/добавление этого параметра тоже не особо помогает


    def get_serializer(self, *args, **kwargs):
        if self.action == 'my_action':
            return MySerializer(*args, **kwargs)

    @list_route(['post'])
    def my_action(self, request,  **kwargs):
           print(kwargs['slug']) # <-- тут должен получить myslug
           ...

    @list_route(['post'])
    def other_action(self, request,  **kwargs):
           # тут мне slug не нужен, и его не надо в урле передавать


При запросе /my_api/myslug/my_action/ мне нужно чтобы значение slug передавалось только в my_action.
Сейчас пишет что нет такого url
Замена
router.register(r'my_api', MyViewSet)
на
router.register(r'my_api/(?P<slug>\w+)/', MyViewSet)

не помогает
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы