我想要创建在执行GET请求时返回对象列表的ViewSet,在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/Host/test/ HTTP/1.1主机: IP用户-代理: curl/7.65.3接受: application/json;indent=4
发布于 2020-03-03 20:05:58
试着添加
http_method_names = ['post', ]直接在queryset和序列化程序赋值语句下面:
queryset = CloudModelHost.objects.all()
serializer_class = CloudSerializerHosts
http_method_names = ['post', ]https://stackoverflow.com/questions/60514216
复制相似问题