Я хотел создать ViewSet, который будет возвращать список объектов при выполнении запроса GET, и в случае запроса POST он выполнит функцию и только после этого вернет этот список. Я сделал это как в документации, но получение этого «поста» не допускается.
views.py
class CloudViewSetHosts(viewsets.ModelViewSet):
queryset = CloudModelHost.objects.all()
serializer_class = CloudSerializerHosts
@action(methods=['POST'], detail=True,
url_path='autodiscovery', url_name='autodiscovery')
def autodiscovery(self, request, requestDataName=None):
...
some actions
...
return CloudModelHost.objects.all()
urls.py
router = routers.DefaultRouter()
router.register(r'hosts', CloudViewSetHosts)
urlpatterns = [
path('', include(router.urls)),
]
И вычеркнуть:
curl -X POST -H 'Accept: application/json; indent=4'
http://IP/api/hosts/test/ -vvv * Попытка IP: 80 ... * TCP_NODELAY set * Подключен к IP (IP) порту 80 (# 0)
POST / api / hosts / test / HTTP / 1.1 Хост: IP User-Agent: curl / 7.65.3 Принять: application / json; indent = 4
- Пометить пакет как не поддерживающий многоцелевое использование
- Соединение № 0 с IP-адресом хоста оставлено без изменений