Я пытаюсь выполнить POST с дополнительными действиями в Django Rest, но получаю эту ошибку
{"detail":"Method \"POST\" not allowed."}
Это метод для POST:
class TemplateView(ModelViewSet):
@action(detail=False, methods=['POST'],
url_path=r'process_version_template/')
def process_version_template(self, request):
print("request", request)
return JsonResponse({}, safe=False, status=200)
В моем urls.py
:
api_router = DefaultRouter()
api_router.register(r'template', views.TemplateView, 'template')
urlpatterns = [
path('predefined-comments', PredefinedCommentListView.as_view(),
name='predefined_comments'),
]
urlpatterns += api_router.urls
Тогда моя конечная точка, которую я использую в Postman для отправки данных:
http://127.0.0.1:8000/api/v1/financing-settings/template/process_version_template/
тогда тело:
{
"id":1784,
"param":"block",
"target":315
}
Что я делаю не так ?
Кажется, вам не нужно ставить косую черту
Изменять
`url_path=r'process_version_template/'`
к
`url_path=r'process_version_template'`
Тяжело получилось detail=True
, но теперь False
что значит detail
?
detail
означает, является ли пользовательское представление детальным представлением или нет.
Я так и сделал, но ошибка осталась