Я создаю метод удаления в DRF API, передавая параметры, но я не знаю, как правильно передать orientdb @ rid.
У меня есть отношение в orientdb, которое называется "worksat"в OrientDB Studio можно увидеть @rid с именем структуры, например #: , то есть: «# 33: 1» - это @rid записи отношения worksat.
Таким образом, мне нужно передать эту строку в моих отношениях API DRF URL:
http://127.0.0.1:8000/api/oworksat/
Но передать как:
http://127.0.0.1:8000/api/oworksat/#33:1
Я вижу запрос GET, с сообщением ниже (я ожидаю увидеть УДАЛИТЬ): Allow: GET, POST, HEAD, OPTIONS
Если передать простое число:
http://127.0.0.1:8000/api/oworksat/1
Затем я вижу запрос УДАЛИТЬ (очевидно, "1" не существует):
HTTP 404 Not Found
Allow: GET, PUT, PATCH, DELETE, HEAD, OPTIONS
api.py:
class OWorksAtViewSet(viewsets.ModelViewSet):
queryset = graph.oworksat.query()
serializer_class = OWorksAtSerializer
permission_classes = [
permissions.AllowAny
]
def destroy(self, request, *args, **kwargs):
print ("destroy")
import pdb;pdb.set_trace()
urls.py:
from django.conf.urls import include, url
from rest_framework import routers
from .api import (OWorksAtViewSet)
from rest_framework_swagger.views import get_swagger_view
router = routers.DefaultRouter()
router.register('api/oworksat', OWorksAtViewSet, 'oworksat')
schema_view = get_swagger_view(title='Swagger Documentation')
urlpatterns = [
url(r'^swagger/$', schema_view)
]
urlpatterns += router.urls
Интересно то, что при доступе из swagger api в методе DELETE, если я передаю идентификатор запроса "# 33: 1", он работает, вызов APIмой метод уничтожения и получение в kwargs: kwargs = {'pk': '#33:1'}
.
Как я могу достичь этого поведения из DRF API?