Я использую Django 2.0
и Django REST Framework
Я создал метод действия для удаления определенного объекта из базы данных
contacts / views.py
class ContactViewSet(viewsets.ModelViewSet):
serializer_class = ContactSerializer
permission_classes = (IsAuthenticated, AdminAuthenticationPermission,)
# others actions goes here
@action(methods=['delete'], detail=False, url_path='delete_phone/<phone_pk>/')
def delete_phone(self, request, pk=None):
contact = self.get_object()
print(contact)
print(pk)
print(self.kwargs['phone_pk'])
return Response({'status': 'success'})
apps / urls.py
router.register(r'contacts', ContactViewSet, 'contacts')
api_urlpatterns = [
path('', include(router.urls)),
]
Но когда я получаю доступ к
DELETE: http://url/api/contacts/delete_phone/1/
Это дает page not found
ошибку.
На странице ошибок есть список проверенных шаблонов URL
api/ ^contacts/delete_phone/<phone_pk>//$ [name='contacts-delete-phone']
api/ ^contacts/delete_phone/<phone_pk>\.(?P<format>[a-z0-9]+)/?$ [name='contacts-delete-phone']