Как request.data может использоваться для переключения представления класса django?

Я пытаюсь использовать один API для вызова различных представлений, основанных на классах. На самом деле планирую решить это с помощью другой функции. Является ли это питоническим способом?

My Urls.py

from django.urls import path
from masterdata import views
from rest_framework.urlpatterns import format_suffix_patterns

urlpatterns = [
    path('AAA/', views.AAAList.as_view()),
    path('AAA/<str:pk>/', views.AAADetails.as_view()),
    path('BBB/<str:pk>/', views.BBBList.as_view()),
    path('BBB/<str:pk>/', views.BBBDetails.as_view()),
    ]


urlpatterns = format_suffix_patterns(urlpatterns)

my Views.py

class AAAList(APIView):
   "some operation"

class AAADetails(APIView):
   "some operation"

class BBBList(APIView):
   "some operation"

class BBBDetails(APIView):
   "some operation"


Мне нужно переключить эти классы, используя один Url с передачей данных тела в метод. url выглядит как,

path("",views."somefunction or class")

Как я могу этого достичь?

я пытаюсь решить это с помощью функции создания в views.py

def switcher(request):
if request.GET.get("body param")==AAA:
    return AAA.as_view()(request)
elif request.GET.get("body param")==AAA:
    return BBB.as_view()(request)

Вы можете использовать различные методы запроса (GET, POST, DELETE, PUT и т.д.) в одном APIView.

В качестве альтернативы вы можете передать переменную в параметрах запроса для проверки и вызова конкретной функции. В идеале это также зависит от используемого подхода и размера проекта.

За помощью вы можете обратиться к этой ссылке. https://testdriven.io/blog/drf-views-part-1/

Вернуться на верх