Что ж, вам, вероятно, следует начать с сериализации error_dict
с использованием библиотеки json.
import json
out = json.dumps(error_dict)
Учитывая, что вы не предоставляете никакого контекста о том, как настроено ваше представление, я могу показать вам толькокак бы я это сделал:
@view_config(route_name='some_route', renderer='json')
def myview(request):
if #stuff fails to validate:
error_dict = # the dict
request.response.status = 400
return {'errors': error_dict}
return {
# valid data
}
Если вы хотите создать ответ самостоятельно, то:
response = HTTPBadRequest()
response.body = json.dumps(error_dict)
response.content_type = 'application/json'
return response
Чтобы отладить проблему, прекратите исходить из того, работает ли jQuery, и посмотритепо просьбе самим определить, правильно ли работает Pyramid или что-то еще происходит.
curl -i <url>
Или даже просто откройте отладчик в браузере, чтобы посмотреть, что возвращается вответ.