出现错误{“ detail”:“不允许使用方法\” GET \“。”}

时间:2019-04-28 11:02:02

标签: python-3.x vue.js django-rest-framework

我也是vue.js和django的新手, 在以下问题上需要一些帮助。 我创建了一个api,试图在其中从一个数据库表中获取数据,并将其发送到vue.js页面进行检查。

我收到错误“ {” detail“:”不允许使用方法\“ GET \”。“}”

我以多种方式尝试过,例如以JSON形式或以数组形式发送数据,但仍然遇到相同的问题

下面的Model.py是用于反序列化的模型以及我用来获取数据的表的模型

def deserialize_Issue(issue):
    """Deserialize user instance to JSON."""
    return {id': issue.id, 'IName': issue.IName, 'IDesc': issue.IDesc, 'ITeam': issue.ITeam,'IStat': issue.IStat, 'IChat': issue.IChat, 'Iuri': issue.Iuri, 'Ibridge': issue.Ibridge, 'Ibridgedetails': issue.Ibridgedetails  }

class Issue(TrackableDateModel):
    IName=models.CharField(max_length=500)
    IDesc=models.CharField(max_length=1000)
    ITeam =models.CharField(max_length=500)
    IStat=models.CharField(max_length=250)
    IChat=models.CharField(max_length=2,default='NA')
    Iuri=models.URLField(default='NA')
    Ibridge=models.CharField(max_length=2,default='NA')
    Ibridgedetails=models.CharField(max_length=20,default='NA')

def __str__(self):
    return self.IName, self.IStat

在view.py文件中,我创建了调用和get方法以从表中获取数据。

class IssuesDetailsView(APIView):

    def get(self, request, *args, **kwargs):
        DETAILS='Issue.objects.all()'
        serializer=deserialize_Issue(DETAILS,many=True)

        return Response ({'Issues': serializer.data})

vue.js文件中的abc.vue试图加速获取数据

fetchIssueDetails () {
  $.get(`http://127.0.0.1:8000/api/chats/`, (data) => {
    this.Issues = data.Issues
  })

    .fail((response) => {
      alert(response.responseText)
    })
}

我想在for循环中读取vue.js文件中的表数据

1 个答案:

答案 0 :(得分:0)

这是您在评论中提供给我的urls.py

from django.contrib import admin
from django.urls import path
from . import views

urlpatterns = [
    path('chats/', views.ChatSessionView.as_view()),
    path('chats/<uri>/', views.ChatSessionView.as_view()),
    path('chats/<uri>/messages/', views.ChatSessionMessageView.as_view()),
]

请注意如何将网址/api/chats/绑定到views.ChatSessionView,而不是IssuesDetailsView。然而,您正在使用Javascript向/api/chats/发送请求。

解决问题的一种方法是

path('chats/', views.IssuesDetailsView.as_view()),