我是 Django 的新手。最初我有這個(gè)基于函數(shù)的視圖 -@api_view(['GET', 'PUT', 'DELETE'])def detail(self,request, pk):"""Retrieve, update or delete a product instance."""try: product = latesttrial.objects.get(pk=pk) newproduct = latesttrial.objects.all()except latesttrial.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND)if request.method == 'GET': serializer = latestSerializer(product,context={'request': request}) return Response(serializer.data)elif request.method == 'PUT': serializer = latestSerializer(product, data=request.data,context={'request': request}) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)然后它給出了這個(gè)錯(cuò)誤 -TypeError: detail() missing 1 required positional argument: 'pk' 為此,我根據(jù)此答案進(jìn)行了這些更改- 缺少 1 個(gè)必需的位置參數(shù):'pk'然后我有了這個(gè)基于函數(shù)的視圖@api_view(['GET', 'PUT', 'DELETE'])def detail(request, *args, **kwargs):"""Retrieve, update or delete a product instance."""try: pk = self.kwargs.get('pk') product = latesttrial.objects.get(pk=pk) newproduct = latesttrial.objects.all()except latesttrial.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND)if request.method == 'GET': pk = self.kwargs.get('pk') serializer = latestSerializer(product,context={'request': request}) return Response(serializer.data)elif request.method == 'PUT': pk = self.kwargs.get('pk') serializer = latestSerializer(product, data=request.data,context={'request': request}) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)然后我有這個(gè)錯(cuò)誤 -TypeError: detail() missing 1 required positional argument: 'request'
1 回答
HUX布斯
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以將更改恢復(fù)到以前的版本并進(jìn)行更改:
url(r'detail',detail,name="newfunction"),
對(duì)此:
url(r'detail(?P<pk>[0-9]+)/$',detail,name="newfunction"),
添加回答
舉報(bào)
0/150
提交
取消
