Django API允许通过URL进行POST

时间:2013-06-14 08:47:02

标签: django tastypie

我已开始将TasyPie用于API,并在下面构建以下资源。我的问题是使用API​​的客户端不会在json中生成POST,即

要求这样的POST ....

http://somedomain/a/path?id={{ticket.external_id}}&status={{ticket.status}}

如何通过网址允许POST?目前TasyPie仅适用于身体中的json POST。

class SMSResource(ModelResource):

    class Meta(CommonMeta):
        queryset = Batch.objects.all()
        resource_name = 'sms'
        list_allowed_methods = ['get', 'post']
        detail_allowed_methods = ['get']

2 个答案:

答案 0 :(得分:1)

您无法通过网址发送POST。这是标题中的http方法,而不是网址。

答案 1 :(得分:1)

如果使用您的API的客户端不支持POST HTTP方法,那么您需要设计一种使用GET方法模拟POST的安全方法。使用GET更改数据不是安全的,因此如果您没有其他选项,则需要考虑安全性。

我没有使用Tastypie框架,但这可能会有所帮助。 Using PUT/DELETE/PATCH In Unsupported Places

编辑:
另请检查标题中的“内容类型”。对于JSON POST,它是application / json,对于常规表单POST,它应该是application / x-www-form-urlencoded。