Я не могу получить TastyPie, чтобы принять запрос POST, сделанный через Ajax или нет. Я получаю сообщение об ошибке: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 полностью терпит неудачу. Я использую POSTMAN в Chrome для тестирования. Может ли кто-нибудь увидеть, что я делаю неправильно?
EDIT:
Я реализовал cookie based authentication for TastyPie и все работает, как ожидалось.
К сожалению, я получаю ту же ошибку. Вот полная трассировка: https://gist.github.com/btaylordesign/6885415/raw/29f167760a2fc2c3ec119b9ac1c0123e936b4b98/gistfile1.txt – Brandon
@Brandon plz пришлите мне ur json Documnet, что ур, отправляющий на POST ваше сообщение, показывает, что данные не отформатированы должным образом –
Это просто: {'coupon_id': 1, 'user_id': 1} – Brandon