Обычно я делал много раз без проблем, но теперь все по-другому, и я не знаю почему.
Я просто пытаюсь отобразить список на html-странице, используя Flask и Jinja2.
А вот мой кусок кода.
__init__.py
bpPortfolioList = Blueprint('portfolio', __name__)
@bpPortfolioList.route('/list', methods=['GET', 'POST'])
@is_log_in
def plist():
portfolio = None
if session['profile'] == 1:
print('agent')
portfolio = mongo.db.users.find({"agentid": session['userid']}, {"portfolio": 1})
for p in portfolio:
print(p)
return render_template('portfolio/list.html', portfolios=portfolio)
Я поймал вывод портфеля и вот результат:
{'_id': 10, 'portfolio': {'id': 8476, 'description': '', 'mode': 'Closed', 'accounts': [{'id': 123456, 'account_type': 'None', 'category': '1', 'owner': None, 'ratio': 100, 'status': '1'}]}}
{'_id': 1}
{'_id': 11, 'portfolio': {'id': 4983, 'description': '', 'mode': 'Closed', 'accounts': []}}
{'_id': 13, 'portfolio': {'id': 1226, 'description': '', 'mode': 'Closed', 'accounts': []}}
{'_id': 15, 'portfolio': {'id': 8786, 'description': '', 'mode': 'Closed', 'accounts': []}}
{'_id': 19, 'portfolio': {'id': 7995, 'description': '', 'mode': 'Closed', 'accounts': []}}
Тогда HTML:
<tbody>
{% for p in portfolios %}
<tr>
<td>{{ p.id }}</td>
<td>{{ p.mode }}</td>
{% for c in p.accounts %}
<td>{{ c.id }}</td>
<td>{{ c.status }}</td>
<td>{{ c.ratio }}</td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
В результате я ничего не получил, кроме заголовка таблицы
Есть идеи, в чем проблема?
Спасибо за вашу помощь.