Django __init __()接受1个位置参数,但给出了2个位置参数(添加了.as_view())

时间:2020-03-14 12:01:24

标签: django database api

我运行服务器并转到... / api / user后,它返回错误

File ".../project/user/views.py", line 21, in get
return Response(serializer.data)

TypeError: __init__() takes 1 positional argument but 2 were given

注意第21行: 返回响应(serializer.data)

models.py

class User(models.Model):
    name = models.CharField(max_length=100)
    address = models.CharField(max_length=300)

    def __str__(self):
        return self.name

views.py

class UserInfo(APIView):
   def get(self, request, format=None):
       user = User.objects.all()
       serializer = UserSerializer(user, many=True)
       return Response(serializer.data)

user / urls.py

urlpatterns = [
    path('user/', UserInfo.as_view(), name='list_user')

]

urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', include('user.urls'))
]

urlpatterns = format_suffix_patterns(urlpatterns)

我添加了.as_view()。

1 个答案:

答案 0 :(得分:1)

基于该评论

期望从视图中返回ResponseHttpResponseHttpStreamingResponse,但是当我编辑return Response()时收到<class 'requests.models.Response'>结果

您输入了错误的Response()。您必须从DRF而不是从Requests中导入一个。