【发布时间】:2017-04-11 05:58:51
【问题描述】:
如果这是一个愚蠢的问题,请提前道歉,但我还是有点困惑。阅读烧瓶管理文档尚未给出任何结果。
在此示例中flask admin image upload example 有一个名为 ImageView 的自定义 ModelView:
class ImageView(sqla.ModelView):
def _list_thumbnail(view, context, model, name):
if not model.path:
return ''
return Markup('<img src="%s">' % url_for('static',
filename=form.thumbgen_filename(model.path)))
column_formatters = {
'path': _list_thumbnail
}
# Alternative way to contribute field is to override it completely.
# In this case, Flask-Admin won't attempt to merge various parameters for the field.
form_extra_fields = {
'path': form.ImageUploadField('Image',
base_path=file_path,
thumbnail_size=(100, 100, True))
}
_list_thumbnail(view, context, model, name)中有参数模型。在这个方法内部,我可以访问模型的属性。
我的问题是如何在 _list_thumbnail(view, context, model, name) 方法之外但在 ImageView 中访问模型及其属性?
谢谢
【问题讨论】:
-
flask-admin 模型视图使用类属性来定义它们与模型交互的方式。模型作为参数传递给view constructor,因此您无法在类级别访问模型。但在视图方法中,您可以通过
self.model获得它。你到底想达到什么目标? -
@SergeyShubin,我试图实现的是在将图像保存到 base_path =
file_path之前,我想附加到模型的file_pathid。你知道我该怎么做吗? -
@Nurzhan 我看不懂
append to the file_path id of the model。 -
@stamaimer,这是我对
form_extra_fields感兴趣的部分。我想附加到file_path这只是一些路径 'files/...' 字符串 'user_' + model_id 这将导致类似 'files/user_1'、'files/user_2' 等。 -
此语句用
form.ImageUploadField覆盖名为path的字段。第一个参数Image是输入渲染为html时的标签。第二个参数是上传图片文件的保存路径。第三个参数是上传文件的缩略图大小,可以省略。
标签: python flask flask-admin