URL рамок отдыха Django - PullRequest
       2

URL рамок отдыха Django

0 голосов
/ 19 декабря 2018

Я структурирую API Django с помощью структуры rest, я читаю документы, а DRF делает только модель (get, post, patch, delete) из модели.Теперь дело в том, как я могу делать пользовательские действия с DRF.

Пример:

api/v1/model/custom_action

Код:

class DistrictViewSet(viewsets.ModelViewSet):
      queryset = District.objects.all()
      serializer_class = DistrictSerializer

      def custom_action(request, param):
          # do many actions and return as Json Object

urls.py

url(r'api/v1/', include(router.urls))

Где маршрутизатор

router.register(r'model',api.ModelViewSet)

Я согласен с этим или мне нужно создать другое представление модели, настроить код и добавить его в список маршрутизаторов?

1 Ответ

0 голосов
/ 19 декабря 2018

Вы можете добавить пользовательские действия, как вы уже сделали, но вам может понадобиться декоратор @action, чтобы настроить URL для применения к одному объекту или ко многим.@action(detail=True) добавляет pk к URL-адресу, так как он применяется к одному объекту.

URL-адрес создается из имени действия, поэтому, например,

@action(detail=True)
def custom_action(self):
    pass

приведет к URL-адресу ^<app_name>/{pk}/custom_action/$

Вы можете найти это полезным: https://www.django -rest-framework.org / api-guide / viewsets / # маркировка-дополнительные-действия-для-маршрутизации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...