【问题标题】:Post method not allowed on Django Rest FrameworkDjango Rest Framework 上不允许使用 Post 方法
【发布时间】:2021-06-19 17:51:17
【问题描述】:

我正在使用 Django Rest Framework 和 VueJS 开发一个小项目,我在发送 POST 请求后遇到了一个小错误,我得到 405 POST Method Not Allowed,我不知道为什么我的请求网址是/contact/create/

这是我的代码:

class ContactView(viewsets.ViewSet):

    def create(self, request):
        serializeObject = ContactSerializer(data = request.data)
        if serializeObject.is_valid():
            serializeObject.save()
            contactObject = Contact.objects.all()
            contactSerializer = ContactSerializer(contactObject, many=True)
            return Response(contactSerializer.data, status = status.HTTP_201_CREATED)
        return Response(serializeObject.errors, status.HTTP_400_BAD_REQUEST)

我的 Axios 代码:

getAPI.post('contact/create/', this.form).then((response) => {
                this.$emit('fetchContact')
            }).catch((error) => {

            })

【问题讨论】:

  • 你确定网址是/contact/create/吗?不仅是/contact/,而且是用POST方法调用的?
  • @Tiki 是的,你可以仔细检查我的问题(更新)
  • ViewSet 类只是一种基于类的 View,它不提供任何方法处理程序,例如 .get() 或 .post(),而是提供操作,例如 .list()和 .create()。

标签: django


【解决方案1】:

通过在末尾删除 /create/ 并将我的请求保持为 POST 来修复

【讨论】:

    猜你喜欢
    • 2019-02-12
    • 1970-01-01
    • 2018-12-22
    • 2021-04-05
    • 1970-01-01
    • 2017-07-16
    • 1970-01-01
    • 2023-03-05
    • 2019-05-04
    相关资源
    最近更新 更多