Параметры Django в URL
Я пытаюсь написать функцию удаления для моего CRUD API с Python Rest Framework. В функции delete я хочу удалить конкретный элемент в базе данных, и я хочу, чтобы он передавался через параметр ссылки следующим образом: path/to/link/to/delete/post3.
Я сделал это в url-файле:
path("link/<int:link_pk>/", views.LinkView.as_view(),
name="link_integration")
Затем, в ApiView вот такой код:
@log_request_decorator
def delete(self, request: Request, link_pk: int, **kwargs) -> JsonResponse:
do_stuff()
#print(social_integration_pk)
return JsonResponse({}, status=204)
А вот код теста, который я использую для проверки этого:
link = "link/1/"
factory = APIRequestFactory()
request = factory.delete(link)
view = LinkView.as_view()
---forced auth---
response = view(request)
И я получаю следующее:
TypeError: delete() missing 1 required positional argument: 'link_pk'
Может быть, кто-то знает, как это исправить? Мне нужно иметь этот параметр, чтобы делать то, что я должен. Может быть, это глупость, но я не знаю. Если вы можете, пожалуйста, помогите мне. Спасибо
У меня есть подозрение, что это может быть одна из двух вещей:
response = view(request)
должно бытьresponse = view(request, link_id=1)
ИЛИview = LinkView.as_view()
должен бытьview = LinkView.as_view({'delete':'delete'})