我似乎無法讓TastyPie接受通過Ajax製作的POST請求。我得到一個錯誤:Django TastyPie 0.10.0不接受POST請求
The format indicated 'multipart/form-data' had no available deserialization method. Please check your
formats
andcontent_types
on your Serializer.
我的模型資源:
class ClippedCouponResource(ModelResource):
class Meta:
queryset = ClippedCoupon.objects.all()
allowed_methods = ['get', 'post']
serializers = UrlencodeSerializer()
authentication = DjangoCookieBasicAuthentication()
authorization = DjangoAuthorization()
default_format = 'application/json'
我的串行是:
from urlparse import urlparse
from tastypie.serializers import Serializer
class UrlencodeSerializer(Serializer):
formats = ['json', 'jsonp', 'xml', 'yaml', 'html', 'plist', 'urlencode']
content_types = {
'json': 'application/json',
'jsonp': 'text/javascript',
'xml': 'application/xml',
'yaml': 'text/yaml',
'html': 'text/html',
'plist': 'application/x-plist',
'urlencode': 'application/x-www-form-urlencoded',
}
def from_urlencode(self, data, options=None):
""" handles basic formencoded url posts """
qs = dict((k, v if len(v) > 1 else v[0])
for k, v in urlparse.parse_qs(data).iteritems())
return qs
def to_urlencode(self,content):
pass
現在,我只是在當地的發展模式,因此所有的請求打算localhost:8000
,所以我沒有啓用任何跨域發佈中間件。我能夠對端點執行GET請求,/v2/api/clippedcoupon/
就好,但是POST完全失敗。我在Chrome中使用POSTMAN進行測試。任何人都可以看到我做錯了什麼?
編輯:
我實現cookie based authentication for TastyPie,一切工作正常。
不幸的是,我得到了同樣的錯誤。這裏是完整的回溯:https://gist.github.com/btaylordesign/6885415/raw/29f167760a2fc2c3ec119b9ac1c0123e936b4b98/gistfile1.txt – Brandon
@Brandon plz給我你的JSON Documnet,你發送到POST您的消息顯示數據格式不正確 –
它很簡單:{'coupon_id':1,'user_id':1} – Brandon