Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

django: generic class view + POST = HTTP 405 (Method not allowed)

Recently I've started converting some of the view functions to Generic Views. Converting the function which was expected to handle POST request (via AJAX form) results in "405 Method not allowed" HTTP exception. I'm sure is not about CSRF: Ajax sends valid token, changing the generic view back to view function (in the test case, they're essentially the same) fixes the problem, and - lastly - for testing purposes, I've disabled CSRF middleware. Did anyone experienced similar problems?

like image 997
migajek Avatar asked Dec 19 '11 15:12

migajek


1 Answers

I suppose you are using class-based views. If so then you need to define post method in your view or use mixin which does it (django.views.generic.edit.ProcessFormView for example). If you want to fully understand why this is necessary then look at dispatch method of django.views.generic.base.View.

like image 118
Kirill Avatar answered Sep 24 '22 08:09

Kirill