Python 烧瓶,错误"jinja2.exceptions.UndefinedError: 'str object' has no attribute 'name'"



我正在创建一个锻炼应用程序,它显示与不同肌肉组相关的不同锻炼。在我添加练习的页面上,我想使用肌肉组对数据库中的练习进行排序。然而,当我运行该应用程序并选择编辑练习页面时,我会得到"jinja2.exceptions.UndefinedError:'str-object'没有属性'name]"错误

路线.py

@exercises.route('/eex', methods=['GET', 'POST'])
@exercises.route('/eex/<mg>', methods=['GET', 'POST'])
def eex(mg=None):
ex = Exercises.query.order_by(Exercises.name.asc())
mgroup = [mg.group for mg in Musclegroup.query.all()]
if mg is not None:
ex = [e.ex.order_by(Exercises.name.asc()) for e in Musclegroup.query.filter_by(group=mg)][0]
form = AddExerciseForm()
form.musclegroup_id.choices = [(m.id, m.group.title()) for m in Musclegroup.query.all()]
if form.validate_on_submit():
image_file1 = save_picture(form.image1.data)
image_file2 = save_picture(form.image2.data)
ex = Exercises(
name=form.name.data,
image1=image_file1,
image2=image_file2,
details=form.details.data,
musclegroup_id=form.musclegroup_id.data
)
db.session.add(ex)
db.session.flush()
new_id = ex.id
db.session.commit()
flash('Exercise successfully added' 'success')
return redirect(url_for('exercises.eex'))
return render_template('exercises/eex.html', title='Edit Exercises', ex=ex, mgroup=mgroup, form=form)

Html

<div class="col-md-4">
<!-- Search Widget -->
<div class="panel panel-default">
<div class="panel-heading"><b>Muscle Groups</b></div>
<div class="panel-body">
<ul class="list-group">
<li class="list-group-item">
<a href="{{ url_for('exercises.eex') }}">All</a>
</li>
{% for group in mgroup %}
<li class="list-group-item">
<a href="{{ url_for('exercises.eex', mg=group) }}">{{ group.name() }}</a>
</li>
{% endfor %}
</ul>
</div>
</div>
</div>

一个可能的原因是

mgroup = [mg.group for mg in Musclegroup.query.all()]

正在为您提供一个字符串列表(假设.group是一个字符串(。然后,模板进行

{% for group in mygroup %}
{{ group.name }}

让你看到错误。快速解决方法(或验证这是问题所在(是删除.name

相关内容

最新更新