Экземпляр не отображается в шаблоне - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь передать объект в шаблон, но в нем ничего не отображается.

from app.models import Datacenter

@app.route('/datacenter/<int:id>')
def datacenter(id):
    datacenter = Datacener.query.filter_by(id=id)   
    return render_template('datacenter.html', datacenter=datacenter)

html

{% extends "base.html" %}

{% block content %}
    <h1>{{ datacenter.name }}</h1>
{{ datacenter.name }}
    <p>{{ datacenter.number }}</p>
    <p>{{ datacenter.place }}</p>
    <p>{{ datacenter.capacity }}</p>
    <p>{{ datacenter.tier }}</p>
{% endblock %}

1 Ответ

0 голосов
/ 31 мая 2018

Это потому, что вы не отображаете экземпляр Datacenter, а вместо этого отображаете query.Попробуйте print(datacenter) в своем коде Python, и вы увидите, что вместо него выводится оператор SQL SELECT ... FROM....

Вы должны добавить .first() к вашему запросу, и вам будет хорошо.

datacenter = Datacenter.query.filter_by(id=id).first()

Или ...

 datacenter = Datacenter.query.get_or_404(id)

Последнийспециально ищет правильный идентификатор и показывает ошибку 404, если указанный центр обработки данных не найден.

...