Я создаю api для простого форума с использованием пирамиды и sqlalchemy. У меня есть представление, в котором я хочу просто вернуть некоторые сообщения в json-форме клиенту, когда пользователь прокручивается до конца страницы. По какой-то причине запрос даже не запускается, и мне возвращают объект запроса, а не объект rowproxy. Это всего лишь тестовый запрос btw, я просто получаю несколько раз из db и пытаюсь отправить их в json.Почему мой объект запроса не выполняется и остается объектом запроса?
@view_config(route_name='get-posts', renderer='json')
def get-posts(request)
q = session.query(Topic).filter(Topic.name =='gaming')\
.order_by(desc(Topic.topic_date)).limit(10)
results = [dict(zip(row.keys()) for row in q)]
return {'posts' : results}
Когда запускается, я получаю «AttributeError: объект„на тему“не имеет attribtue ключи», и после проверки типа ц, я обнаружил, что это типа: sqlalchemy.orm.query.Query
Кто-нибудь знает, почему запрос не выполняется? У меня есть функция просмотра не api, где я делаю практически одно и то же, и возвращаю результат (прокси-сервер строки в виде содержимого словаря, и он работает ...
[dict (zip (row.keys()) для строки в q)] вернет список длины 1, где единственным элементом является словарь. Вы хотите это? –
Это всегда будет объект запроса. Это просто, что итерация по запросу дает свои результаты. – kindall
@JeffMandell Да, я пытаюсь получить версию словаря запроса, чтобы я мог вернуть его в json – Jaigus