Я новичок в 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'
Для этого я сделал эти изменения в соответствии с этим ответом - отсутствует 1 обязательный позиционный аргумент: '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"),
]
Как мне решить мою проблему. Пожалуйста, помогите !!