减少 Flask-Admin 中列的大小
Reducing size of columns in Flask-Admin
有没有办法限制 ModelView 列的大小 (length/width)?我使用的是 WYSIWYG 编辑器,这会创建非常长的文本,因此使 ModelView 的列非常长。
这是它的外观图片。查看右侧最后一列。它甚至比屏幕截图可以处理的还要长。
实现此目的的一种方法是覆盖相关列的 css 样式。在 Flask-admin list.html
模板中,您可以找到以下用于创建列的代码:
{% for c, name in list_columns %}
<td class="col-{{c}}">
{% if admin_view.is_editable(c) %}
{% set form = list_forms[get_pk_value(row)] %}
{% if form.csrf_token %}
{{ form[c](pk=get_pk_value(row), display_value=get_value(row, c), csrf=form.csrf_token._value()) }}
{% else %}
{{ form[c](pk=get_pk_value(row), display_value=get_value(row, c)) }}
{% endif %}
{% else %}
{{ get_value(row, c) }}
{% endif %}
</td>
{% endfor %}
例如对于第 2 列,您可以将最大宽度 属性 添加到 css class col-2
以限制其宽度。
不显示列(通过排除):
class MyView(ModelView):
column_exclude_list = ('description')
不显示列(通过包含):
class MyView(ModelView):
column_list = ('rating', 'category_id', 'year', 'stock', 'image')
重新格式化列:
class MyView(ModelView):
def _description_formatter(view, context, model, name):
# Format your string here e.g show first 20 characters
# can return any valid HTML e.g. a link to another view to show the detail or a popup window
return model.description[:20]
column_formatters = {
'description': _description_formatter,
}
有没有办法限制 ModelView 列的大小 (length/width)?我使用的是 WYSIWYG 编辑器,这会创建非常长的文本,因此使 ModelView 的列非常长。
这是它的外观图片。查看右侧最后一列。它甚至比屏幕截图可以处理的还要长。
实现此目的的一种方法是覆盖相关列的 css 样式。在 Flask-admin list.html
模板中,您可以找到以下用于创建列的代码:
{% for c, name in list_columns %}
<td class="col-{{c}}">
{% if admin_view.is_editable(c) %}
{% set form = list_forms[get_pk_value(row)] %}
{% if form.csrf_token %}
{{ form[c](pk=get_pk_value(row), display_value=get_value(row, c), csrf=form.csrf_token._value()) }}
{% else %}
{{ form[c](pk=get_pk_value(row), display_value=get_value(row, c)) }}
{% endif %}
{% else %}
{{ get_value(row, c) }}
{% endif %}
</td>
{% endfor %}
例如对于第 2 列,您可以将最大宽度 属性 添加到 css class col-2
以限制其宽度。
不显示列(通过排除):
class MyView(ModelView):
column_exclude_list = ('description')
不显示列(通过包含):
class MyView(ModelView):
column_list = ('rating', 'category_id', 'year', 'stock', 'image')
重新格式化列:
class MyView(ModelView):
def _description_formatter(view, context, model, name):
# Format your string here e.g show first 20 characters
# can return any valid HTML e.g. a link to another view to show the detail or a popup window
return model.description[:20]
column_formatters = {
'description': _description_formatter,
}