有没有办法限制ModelView列的大小(长度/宽度)?我正在使用WYSIWYG编辑器,这会创建非常长的文本,因此使得ModelView的列非常长。
这是它的样子。查看最后一列的右侧。它比截图可以处理的时间更长。
答案 0 :(得分:7)
不显示列(排除):
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,
}
答案 1 :(得分:0)
执行此操作的方法可能是覆盖相关列的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类col-2
添加max-width属性以限制其宽度。