首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法发布到Django REST

无法发布到Django REST
EN

Stack Overflow用户
提问于 2020-03-03 19:25:50
回答 1查看 553关注 0票数 1

我想要创建在执行GET请求时返回对象列表的ViewSet,在POST请求时,它将执行函数,只有在此之后才会返回这个列表。我在文档中这样做,但不允许收到“帖子”。

views.py

代码语言:javascript
复制
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

代码语言:javascript
复制
router = routers.DefaultRouter()
router.register(r'hosts', CloudViewSetHosts)


urlpatterns = [
    path('', include(router.urls)),
]

卷曲着:

代码语言:javascript
复制
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

  • 标记包为不支持多用途< HTTP/1.1 405方法不允许< Date: Tue,2020年3月3日19:20:38 GMT <
  • :Apache/2.4.41 (Ubuntu) <内容-长度: 48
  • Connection #0主机IP留下完整的
EN

回答 1

Stack Overflow用户

发布于 2020-03-03 20:05:58

试着添加

代码语言:javascript
复制
http_method_names = ['post', ]

直接在queryset和序列化程序赋值语句下面:

代码语言:javascript
复制
    queryset = CloudModelHost.objects.all()
    serializer_class = CloudSerializerHosts
    http_method_names = ['post', ]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60514216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档