Как явно определить какой запрос делать в urls as_view?
Как явно определить какой запрос делать в urls as_view? Просто в swagger они дублируются, что не хорошо по сути
urls.py
urlpatterns = [
path('addItem/<int:product_id>/', views.InteractionWithCart.as_view()),
path('getCartInfo/', views.InteractionWithCart.as_view()),
]
views.py
class InteractionWithCart(APIView):
def get(self, request):
cart = Cart(request)
data = cart.get_cart()
return Response(data)
def post(self, request, product_id):
cart = Cart(request)
product = get_object_or_404(Product, id=product_id)
cart.add(product)
return Response({"status": "add"})
Ответы (1 шт):
Автор решения: floydya
→ Ссылка
Вам проще разделить класс на отдельные функции и работать с ними.
Файл views.py
from rest_framework.decorators import api_view
from rest_framework.response import Response
# Остальные импорты – Cart, get_object_or_404, Product
@api_view(http_method_names=['GET'])
def get_cart_info(request):
cart = Cart(request)
data = cart.get_cart()
return Response(data)
@api_view(http_method_names=['POST'])
def add_item_to_cart(request, product_id):
cart = Cart(request)
product = get_object_or_404(Product, id=product_id)
cart.add(product)
return Response({"status": "add"})
Файл urls.py
urlpatterns = [
path('addItem/<int:product_id>/', views.add_item_to_cart),
path('getCartInfo/', views.get_cart_info),
]
