我正在尝试覆盖flask-table类,以根据选项添加一些列。
当前我正在生成路线:
@app.route("/delete_database", methods=["GET", "POST"])
def delete_database():
table_content = Databases.query.all()
table2 = DatabasesTable(table_content)
# table2.add_column(col=LinkCol("Delete", endpoint="index"), name="witam")
response = make_response(render_template("delete_database.html", title="Delete database", table=table2))
return response
视图:
{% extends "base.html" %}
{% block app_content %}
<div class="row" style="padding:2%">
{{ table }}
</div>
{% endblock %}
表类:
from flask_table import Table, Col, LinkCol,
class DatabasesTable(Table):
def sort_url(self, col_id, reverse=False):
pass
classes = ['table table-hover']
table_id = "databases_table"
id = Col("Column name")
name = Col("Column name")
service = Col("Column name")
description = Col("Column name")
count = Col("Column name")
timestamp = Col("Column name")
some_db_table = Col("Column name")
some_db_table2 = Col("Column name")
some_db_table3 = Col("Column name")
some_db_table4 = Col("Column name")
more = LinkCol("Column name")
一切正常,但是我想根据路线选项添加带有删除按钮的“编辑”列(例如,检查用户是否为主持人,然后使用删除按钮添加列)。
我已经尝试过了:
class DatabasesTable(Table):
def __init__(self, new_options=None):
self.new_options = new_options
super().__init__(self)
def sort_url(self, col_id, reverse=False):
pass
classes = ['table table-hover']
table_id = "databases_table"
id = Col("Column name")
name = Col("Column name")
service = Col("Column name")
description = Col("Column name")
count = Col("Column name")
timestamp = Col("Column name")
some_db_table = Col("Column name")
some_db_table2 = Col("Column name")
some_db_table3 = Col("Column name")
some_db_table4 = Col("Column name")
more = LinkCol("Column name")
if options["edit"]:
edit = Column_with_Delete_button
但是我有错误:
TypeError: 'DatabasesTable' object is not iterable