Я работаю с Django, и я использую основанные на классе представления с URL. Итак, в мю-классах у меня есть методы: post
, get
, put
и delete
.
Пример:
class MyClassView(View):
def get(self, request, id=None):
return HttpResponse('GET request')
def post(self, request):
return HttpResponse('POST request')
def put(self, request, id):
return HttpResponse('PUT request')
def delete(self, request, id):
return HttpResponse('DELETE request')
Так что в моих URL-адресах у меня есть что-токак:
from django.urls import path
from . import views
urlpatterns =[
path('my-class/', views.MyClassView.as_view()),
path('my-class/<int:id>/', views.MyClassView.as_view()),
path('my-class/create/', views.MyClassView.as_view()),
path('my-class/update/<int:id>/', views.MyClassView.as_view()),
path('my-class/delete/<int:id>/', views.MyClassView.as_view()),
]
Это прекрасно работает! Когда я отправляю запрос GET на /my-class
, я получаю "GET request"
, а когда я отправляю запрос POST на /my-class/create
, я получаю "POST request"
то же самое для других URL-адресов.
Проблема в том, что когда яотправить POST
запрос на /my-class/
Я получаю "POST request"
и когда я отправляю GET
запрос на /my-class/creare
Я получаю "GET request"
Мне нужно, чтобы URL работал только для определенного запросаметод. То есть url /my-class/create
должен работать только для метода POST
, url /my-class/update
должен работать только для метода PUT
и т. Д.
Как это сделать? Я много исследовал, в документации и даже здесь, но не нашел решения.