首页 > 解决方案 > TypeError: perform_create() 接受 1 个位置参数,但给出了 2 个

问题描述

我在这里使用 Django Rest 框架。当我使用 React 从前端发出 post 请求时,会返回标题错误。

我的 perform_create() 函数在我的视图类中:

class MaxListCreate(generics.ListCreateAPIView):
  queryset = Max.objects.all()
  serializer_class = MaxSerializer
  filter_backends = (filters.OrderingFilter,)
  ordering_fields = ('exercise', 'date',)
  ordering = ('exercise', 'date',)
  permission_classes = (permissions.IsAuthenticated,)

  def perform_create(self):
    user = self.request.user
    serializer.save(user=user)

  # User can only access the data associated with the user.
  def get_queryset(self):
    user = self.request.user
    return Max.objects.filter(user=user)

端点数据格式应为:

{
    "id": 5,
    "date": "2018-08-07",
    "max_lift": 80,
    "user": 1,
    "exercise": 1
},

表格发送:

{"exercise":"3","date":"2018-08-23","max_lift":"70"}

perform_create() 函数的目的是从后端提供用户密钥。

任何帮助,将不胜感激,

标签: djangodjango-rest-framework

解决方案


也添加serializer,作为perform_create方法的参数

def perform_create(self, serializer):
    user = self.request.user
    serializer.save(user=user)

官方文档中阅读有关通用视图的更多信息


推荐阅读