Django REST Framework - список элементов с возможными действиями - PullRequest
0 голосов
/ 25 февраля 2019

Я хотел бы расширить стандарт ListAPIView, добавив разрешенные действия к каждому элементу, чтобы JSON, возвращаемый на GET /books/, выглядел примерно следующим образом:

[
  {
    "ID": 1,
    "name": "Animal Farm",
    "author": "George Orwell",
    "actions": [
      "detail": {
        "method": "GET"
        "uri": "/books/1"
      },
      "remove": {
        "method": "DELETE"
        "uri": "/books/1"
      }
      ...
    ]
  },
  ...
]

При наличии такого "действия"list ", я могу легко сказать внешнему интерфейсу, какие действия в настоящее время разрешены, поэтому он может включать, например, только кнопки для этих действий.

Я просмотрел документы DRF и не смог найти аналогичные функции.Должен ли я написать это с нуля или есть сторонний плагин, который может мне помочь?И когда вы пишете это с нуля, как бы вы разработали (= где написать код) такую ​​функцию?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

DRF поддерживает это, когда вы используете метод OPTIONS, вы можете найти больше информации здесь .Вы можете взглянуть на то, как эта SimpleMetadata функция создает список действий, и либо опираться на него, чтобы написать свой с нуля, либо просто найти способ вызвать его, чтобы отобразить список действий .

0 голосов
/ 25 февраля 2019

Я не уверен, есть ли такой плагин в DRF (может, что-то для сериализаторов?).

Если вы пишете с нуля, вы должны переопределить свой get() метод ListAPIView (или * 1005).* метод mixins.ListModelMixin)

...