#django #json #rest #post #django-piston
#django #json #остальное #Публикация #django-поршень
Вопрос:
Я заметил, что на GitHub есть около 30 форков Django Piston:
https://github.com/search ?q=django-поршеньamp;тип=Всеamp;repo=amp;langOverride=amp;start_value=1
Моя проблема с этой платформой заключается в том, что версии 0.2.2 и 0.2.1, похоже, не заполняют request.data
поле надлежащим образом, когда я отправляю данные через POST
application/json
. Я почти уверен, что проблема существует, я потратил много времени на ее тестирование. Также я видел несколько заявок с жалобами на ту же проблему (если я правильно понимаю жалобы).
Мой вопрос: ко всем пользователям Django Piston — какие версии вы используете и считаете наиболее стабильными. request.data
Поле работает правильно для вас.
Редактировать:
Вау, на самом деле в BitBucket ~ 140 форков… https://bitbucket.org/jespern/django-piston/descendants
РЕДАКТИРОВАТЬ (2):
На самом деле, после того, как я пробовал Piston довольно долгое время, я должен сказать, что его кодовая база довольно беспорядочная. Могло бы быть и более запутанным, но это не совсем понятно. Более того, в нем есть несколько ужасных идей, большинство из которых связаны с глобальными переменными. После отслеживания нескольких ошибок, которые, как оказалось, коренятся в некоторых причудливых дизайнерских решениях в Piston, я, наконец, повернулся к нему спиной и теперь перешел к TastyPie. С тех пор проблем не было.
Комментарии:
1. да .. это беспорядок .. но 0.2.2 отлично работает для меня (включая запрос. данные с данными POST и JSON)
2. @Henrik Но отправляете ли вы данные в формате JSON?
3. ага .. например gist.github.com/935254
4. Могу ли я также просмотреть код на стороне клиента? Или это просто веб-сервис? Возможно, проблема заключается в jQuery. Я проведу некоторую двойную проверку.
Ответ №1:
Ну, наконец-то отследили это. Необходимо научиться просматривать исходные тексты раньше, поскольку проблема оказалась не такой серьезной. Ну, jQuery всегда добавляет «; charset=utf-8» в конец запроса. С другой стороны, Piston предполагает, что тип MIME точно соответствует зарегистрированному имени. В другом случае это вызывает BAD_REQUEST. Одно незначительное исправление внутри utils.py, и все снова работает, как ожидалось.
Комментарии:
1. Ну, проблема в том, что с тех пор я переключился на другую библиотеку (tastypie), но, насколько я помню, это была строка, которая регистрирует анализатор для указанного типа контента. Я изменил тип контента с «json» на «json; charser-utf-8», и это отметилось. Если у вас возникли проблемы с поиском, я мог бы покопаться в своих прошлых коммитах.
2. Ах, это просто. Я предположил, что вы что-то делаете с BAD_REQUEST. Спасибо!