2016-11-16 2 views
0

У меня есть таблица User and Alarm в моей базе данных. Таблица сигналов, связанная с пользователем.Колба - запрос POST возвращает только один элемент

Управление приложениями ко всем аутентификации с видами API.

Проблема

Когда запрос POST успеха контроллер не возвращает все элементы в базе данных. Он возвращает только один.

Я буду писать здесь контроллер коды этих берет под контроль действий после входа успеха

Я попытался это

login_user(user) 

for item in user.alarm: 
    return jsonify({ 
     "id": item.id, 
     "dovizAdi": item.dovizAdi, 
     "mevcutDeger": item.mevcutDeger, 
     "beklenenDeger": item.beklenenDeger, 
     "oranTuru": item.oranTuru, 
     "tarih": item.tarih 
    }) 

возвращает только один элемент

{ 
    "beklenenDeger": "1.56", 
    "dovizAdi": "ons", 
    "id": 1, 
    "mevcutDeger": "1.54", 
    "oranTuru": "buying", 
    "tarih": null 
} 

Я попытался это

result = jsonify(str(user.alarm.all())) 
return result 

возвращает все предметы, но я не могу получить их значения.

"[<Alarm u'ons'>, <Alarm u'ceyrek-altin'>]" 

Я узнал о реализации json моего предыдущего проекта mongodb. Я думаю, что не знаю, как работает json с sql или пропустил какую-то важную вещь в теории. Для оператора цикла, что первый пример, который я сделал, не должен возвращать правильные результаты?

ответ

1

Ваша проблема, что вы возвращаетесь в цикл вместо сбора данных

result = [] 
for item in user.alarm: 
    result.append({ 
     "id": item.id, 
     "dovizAdi": item.dovizAdi, 
     "mevcutDeger": item.mevcutDeger, 
     "beklenenDeger": item.beklenenDeger, 
     "oranTuru": item.oranTuru, 
     "tarih": item.tarih 
    }) 
return jsonify(result) 
+0

Благодарим за помощь. Он возвратил ошибку. Это было так близко. result = '[{}]'. Format (',' .join (result)) TypeError: элемент последовательности 0: ожидаемая строка, ответ найден – oyilmaztekin

+0

@oyilmaztekin вы уверены, что вы наклеили мой код точно так, как я вам предоставил? –

+1

Код неправильный, хотя подход находится по правильной линии. Вы не должны вызывать jsonify для элементов в списке, и вам определенно не следует вручную обматывать их фигурными скобками с помощью форматирования строк в конце; вместо этого добавьте Python в себя в массив результатов, а затем вызовите jsonify на все это. –

0

Вы не должны вызывать str в результатах запроса.

result = jsonify(user.alarm.all()) 
+0

Спасибо, но я уже пробовал это. TypeError: не является сериализуемым JSON. – oyilmaztekin

0

user.alarm.all() вернется QuerySet. Вы можете преобразовать его в список, а затем сериализовать его JSon Попробуйте это:

result = jsonify(list(user.alarm.all())) 
+0

Функция списка не работает.Он возвращает TypeError, что «это не сериализуемое JSON». Даже сработало. Я все еще не буду получать значения элемента списка. – oyilmaztekin

Смежные вопросы