Добрый день.
Веду разработку первого своего приложения. Настала пора прикручивать возможность удаления и обновления объектов модели со стороны клиента. То есть нужно реализовать методы DELETE и PUT.
Имеется такой вьюсет:
class DualFcaPlanUseViewSet(viewsets.ModelViewSet):
lookup_field = 'id' #pk модели FcaPlanUse
authentication_classes = (CsrfExemptSessionAuthentication,)
def get_queryset(self):
user = self.request.user
return FcaPlanUse.objects.filter(id_fca__num_of_agree__renters_id__user_key = user)
def get_serializer_class(self):
if self.request.method == 'GET':
return FcaPlanUseSerializer
if self.request.method == 'POST':
return FcaPlanUsePOSTSerializer
if self.request.method == 'DELETE':
return FcaPlanUseSerializer
и вот такой urls.py проекта
from cutarea.views import *
#...
from rest_framework import routers
router = routers.DefaultRouter()
router.register(r'cutarea-dual-fca-planuse',DualFcaPlanUseViewSet, base_name='cutarea-dual-fca-planuse')
#...
urlpatterns = [
#...
url(r'^api/', include(router.urls)),
]
В связи с этим столкнулся с проблемой, не понимаю как реализовать: router для этих запросов. Правильно я понимаю что ModelViewSet уже позволяет CRUD и не нужно прописывать дополнительных функций?
Как "упасть" до удаления объекта (как понимаю после префикса нужно указать pk?). Какой путь используют профессиональные разработчики для решения, в принципе этой стандартной задачи (как понимаю для стандартных view нужны функции соотвественно это менее удобно(??
Updated 16 May 2019, 14:22 by postgeographer.