Flask-security 删除用户 return 出错
Flask-security delete user return an error
我正在尝试在 Flask 应用程序的用户管理页面上添加删除按钮。
但是当我点击按钮时已经出现了这个错误:
sqlalchemy.orm.exc.UnmappedInstanceError: Class 'builtins.str' is not mapped
这是我的 adminusers.html 文件:
{% extends 'base.html' %}
{% block main %}
<main>
<table class="table table-striped users">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Name</th>
<th scope="col">Email</th>
<th scope="col">Roles</th>
<th scope="col" class="text-center">Delete</th>
</tr>
</thead>
<tbody>
{% for user in users %}
<tr>
<th scope="row">{{ user.id }}</th>
<td>{{ user.name }}</td>
<td>{{ user.email }}</td>
<td>
{% for role in user.roles %}
{{role.name}};
{% endfor %}
</td>
<td style="text-align: center;"><a href="{{ url_for('delete_user', user=user) }}" style="color:red" ><i class="fas fa-times"></i></a></td>
</tr>
{% endfor %}
</tbody>
</table>
</main>
{% endblock main %}
还有我的 app.py 文件:
@app.route('/adminusers')
def list_users():
users= User.query.all()
return render_template('adminusers.html', users=users)
@app.route('/delete_user/<user>')
def delete_user(user):
user_datastore.delete_user(user=user)
db.session.commit()
return redirect(url_for('adminusers'))
我正在尝试使用 'email' 或 'name',但它已经 return 出错了
谢谢@pjcunningham,这样就可以了:
@app.route('/delete_user/<id>')
def delete_user(id):
user = user_datastore.get_user(id)
user_datastore.delete_user(user)
db.session.commit()
return redirect(url_for('adminusers'))
我正在尝试在 Flask 应用程序的用户管理页面上添加删除按钮。
但是当我点击按钮时已经出现了这个错误:
sqlalchemy.orm.exc.UnmappedInstanceError: Class 'builtins.str' is not mapped
这是我的 adminusers.html 文件:
{% extends 'base.html' %}
{% block main %}
<main>
<table class="table table-striped users">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Name</th>
<th scope="col">Email</th>
<th scope="col">Roles</th>
<th scope="col" class="text-center">Delete</th>
</tr>
</thead>
<tbody>
{% for user in users %}
<tr>
<th scope="row">{{ user.id }}</th>
<td>{{ user.name }}</td>
<td>{{ user.email }}</td>
<td>
{% for role in user.roles %}
{{role.name}};
{% endfor %}
</td>
<td style="text-align: center;"><a href="{{ url_for('delete_user', user=user) }}" style="color:red" ><i class="fas fa-times"></i></a></td>
</tr>
{% endfor %}
</tbody>
</table>
</main>
{% endblock main %}
还有我的 app.py 文件:
@app.route('/adminusers')
def list_users():
users= User.query.all()
return render_template('adminusers.html', users=users)
@app.route('/delete_user/<user>')
def delete_user(user):
user_datastore.delete_user(user=user)
db.session.commit()
return redirect(url_for('adminusers'))
我正在尝试使用 'email' 或 'name',但它已经 return 出错了
谢谢@pjcunningham,这样就可以了:
@app.route('/delete_user/<id>')
def delete_user(id):
user = user_datastore.get_user(id)
user_datastore.delete_user(user)
db.session.commit()
return redirect(url_for('adminusers'))