【发布时间】:2020-05-13 23:28:34
【问题描述】:
我是 Django 的新手。
最初我有这个基于函数的视图 -
@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)
然后它给出这个错误 -
TypeError: detail() missing 1 required positional argument: 'pk'
为此,我根据此答案进行了这些更改- missing 1 required positional argument: 'pk'
然后我有了这个基于函数的视图
@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)
然后我有这个错误 -
TypeError: detail() missing 1 required positional argument: 'request'
这是我的看法 -
from django.conf.urls import url, include
from rest_framework.urlpatterns import format_suffix_patterns
from .views import partial, Detailspartial, detail#
urlpatterns = [
url(r'partial',partial,name="partial"),
url(r'pardelete/(?P<pk>[0-9]+)/$', Detailspartial.as_view(), name="Partial details"),
url(r'detail',detail,name="newfunction"),
]
我应该如何解决我的问题。请帮忙!!
【问题讨论】:
标签: python django python-3.x django-rest-framework