Как 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/