【发布时间】:2011-05-31 01:18:29
【问题描述】:
我正在尝试使用 Piston 为 Django 提供 REST 支持。 我已经按照提供的文档实现了我的处理程序。 问题是我可以“读取”和“删除”我的资源,但不能“创建”或“更新”。 每次我点击相关的 api 时,我都会收到 400 Bad request Error。
我使用这个常用的代码 sn-p 扩展了 csrf 的 Resource 类:
class CsrfExemptResource(Resource):
"""A Custom Resource that is csrf exempt"""
def __init__(self, handler, authentication=None):
super(CsrfExemptResource, self).__init__(handler, authentication)
self.csrf_exempt = getattr(self.handler, 'csrf_exempt', True)
我的班级(代码 sn-p)如下所示:
user_resource = CsrfExemptResource(User)
class User(BaseHandler):
allowed_methods = ('GET', 'POST', 'PUT', 'DELETE')
@require_extended
def create(self, request):
email = request.GET['email']
password = request.GET['password']
phoneNumber = request.GET['phoneNumber']
firstName = request.GET['firstName']
lastName = request.GET['lastName']
self.createNewUser(self, email,password,phoneNumber,firstName,lastName)
return rc.CREATED
请告诉我如何使用 POST 操作让 create 方法工作?
【问题讨论】:
-
好的,我从设置文件中注释掉了“django.middleware.csrf.CsrfViewMiddleware”,而不是使用资源类的扩展名。我仍然看到这个问题
-
您如何尝试与“create”或“update”对应的“PUT”或“POST”HTTP 操作?你怎么知道这个客户端代码正在创建一个正确有效的 HTTP 请求?
-
对于 POST,我使用了一个 restclient WizTools.org,我可以从中显式创建一个 POST 请求。所以至少我确信请求通过了,我猜这已经足够了。
标签: python django json rest django-piston