Python 405在带有django的heroku上不允许使用POST方法

Python 405在带有django的heroku上不允许使用POST方法,python,django,web-services,heroku,Python,Django,Web Services,Heroku,我有一个django web服务,它在本地运行得非常好,但一旦我将其上传到heroku,无论我在哪里发布,我在尝试发布时都会收到405个错误。 我已经在我所有的帖子视图中添加了一个csrf_豁免。这些是基于类的视图。 例如: class ApplyForRental(View): def post(self, request, rentalID): #user = User.objects.filter(pk = rentalID) #filtered =

我有一个django web服务,它在本地运行得非常好,但一旦我将其上传到heroku,无论我在哪里发布,我在尝试发布时都会收到405个错误。 我已经在我所有的帖子视图中添加了一个csrf_豁免。这些是基于类的视图。 例如:

class ApplyForRental(View):
    def post(self, request, rentalID):
        #user = User.objects.filter(pk = rentalID)
        #filtered = Contentfile.objects.filter(file_owner = user, published=True)
        rental = RentProperty.objects.get(pk = rentalID)
        applicant = User.objects.get(pk=request.POST.get('interested_renter'))
        rental.interested_renters.add(applicant)

        jsonDict = {"success":True}
        data = json.dumps(jsonDict)

        return HttpResponse(data, content_type='application/json')

    @csrf_exempt
    def dispatch(self,*args,**kwargs):
        return super(ApplyForRental, self).dispatch(*args,**kwargs)
有什么原因说明它在heroku上不起作用,但在本地起作用

我的URL文件: 主要

urlpatterns=patterns(“”,
#示例:
#url(r'^$','homerun.views.home',name='home'),
#url(r“^blog/”,包括('blog.url'),
url(r“^rentals/”,包括('rentals.url',namespace=“rentals”),
url(r'^users/(?P\w+/$),views.UserInfo.as_view(),name='getUser'),
(r“^grappelli/”,包括('grappelli.url'),
url(r“^admin/”,包括(admin.site.url)),
)
应用程序

urlpatterns=patterns(“”,
url(r“^create/$”,views.CreateRental.as_view(),name='CreateRental'),
url(r'^(?P\w+/$),views.rentalinfo.as_view(),name='getrent'),
url(r'^users/(?P\w+/$),views.UserRentals.as_view(),name='UserRentals'),
url(r'^(?P\w+)/uploadimage/$,views.uploadimage.as_view(),name='uploadimage'),
url(r'^(?P\w+)/apply/$',views.ApplyForRental.as_view(),name='ApplyForRental'),
url(r'^$',views.RentalsList.as_view(),name='getRentals'),
#url(r'^fileinfobyowner/(?P\w+)/pk/(?P\d+)/$),views.FileInfo.as_view(),name='filebyowner和dpk'),
#url(r“^FileContentByOwner/(?P\w+)/pk/(?P\d+)/$”,views.GetFileContent.as_view(),name='fileContent'),
)

没有一篇文章是非本地工作的。

我不知道这是否是导致错误的确切原因,但在实例方法上使用decorator时,必须将其包装在@method\u decorator调用中。因此,您的分派函数应该如下所示:

from django.utils.decorators import method_decorator

@method_decorator(csrf_exempt)
def dispatch(self,*args,**kwargs):
    return super(ApplyForRental, self).dispatch(*args,**kwargs)

请发布您的相关URL配置,以及您试图发布到的URL。@YuvalAdam添加了URL.py
urlpatterns = patterns('',

    url(r'^create/$', views.CreateRental.as_view(), name='createRental'),
    url(r'^(?P<rentalID>\w+)/$', views.RentalInformation.as_view(), name='getrental'),
    url(r'^users/(?P<userID>\w+)/$', views.UserRentals.as_view(), name='userrentals'),
    url(r'^(?P<rentalID>\w+)/uploadimage/$', views.UploadImage.as_view(), name='uploadimage'),
    url(r'^(?P<rentalID>\w+)/apply/$', views.ApplyForRental.as_view(), name='applyforrental'),
    url(r'^$', views.RentalsList.as_view(), name='getRentals'),


    #url(r'^filesInfoByOwner/(?P<userName>\w+)/pk/(?P<pk>\d+)/$', views.FileInfo.as_view(), name='filesByOwnerAndPK'),
    #url(r'^filesContentByOwner/(?P<userName>\w+)/pk/(?P<pk>\d+)/$', views.GetFileContent.as_view(), name='fileContent'),

)
from django.utils.decorators import method_decorator

@method_decorator(csrf_exempt)
def dispatch(self,*args,**kwargs):
    return super(ApplyForRental, self).dispatch(*args,**kwargs)