SQLAlchemy模型数据不在Jinja循环中呈现

2024-05-15 14:54:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试显示菜单项(如午餐菜单),但无法显示。我通过Flask管理页面添加了这些项目,并检查了数据库以验证这些项目是否确实存在,因此我知道这不是我的问题。为什么菜单项数据不在循环中呈现?在

class MenuItems(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(50), index=True, unique=True)
    price = db.Column(db.Float(6), unique=False)
    description = db.Column(db.String(140))

@app.route('/menu')
def menu():
    menu_items = MenuItems.query.all()
    return render_template('menu.html', title="Dave's Bread - Menu",  menu_items=menu_items, user=current_user)
^{pr2}$

Tags: 项目trueflaskdbstring菜单itemscolumn
2条回答

使用first()时不能循环,因为它返回的是一个项,而不是一个列表。在

在你发布的模板中,你在每个项目上循环,但总是引用列表而不是项目(项目而不是菜单项)。在

您正在访问循环中menu_items上的属性。{cd2>表示要使用每个项目的属性。在

默认情况下,Jinja将跳过未定义的烧瓶环境值。menu_items没有description属性,因此Jinja将其视为未定义。您可以使用不同的undefined type使其更加严格。在

from jinja2 import StrictUndefined
app.jinja_env.undefined = StrictUndefined

相关问题 更多 >