Параметры 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'

Может быть, кто-то знает, как это исправить? Мне нужно иметь этот параметр, чтобы делать то, что я должен. Может быть, это глупость, но я не знаю. Если вы можете, пожалуйста, помогите мне. Спасибо

У меня есть подозрение, что это может быть одна из двух вещей:

  1. response = view(request) должно быть response = view(request, link_id=1) ИЛИ
  2. view = LinkView.as_view() должен быть view = LinkView.as_view({'delete':'delete'})
Вернуться на верх