如何用当前图像文件名预填充WTForm FileField



当用户想要使用WTForm更新帖子时,我如何在表单上预填充FileField输入,使其显示当前图像名称

目前,用户每次更新帖子的其他方面时都必须上传相同的图像,否则当前图像将被删除,因为更新帖子时没有图像。

我目前如何预填充表格:

if request.method == 'GET':
form.title.data = post.title
form.language.data = post.language
form.alt.data = post.alt
form.text.data = post.content
form.tag_1.data = post.tag_1
form.tag_2.data = post.tag_2
form.tag_3.data = post.tag_3
form.image.data = post.img # This is the line where I am trying to pre-populate the FieldField

目前,用户每次更新帖子的其他方面时都必须上传相同的图像,否则当前图像将被删除,因为更新帖子时没有图像

我在做一个项目时也遇到了同样的问题。虽然我没有解决预填充文件字段的问题,但我有一个解决方案。我做了以下事情。

  1. 当request.method为"GET"时,请检查数据库中的image属性是否为NULL。如果不为null,则应将图像文件的位置传递给filefield。使用您的变量,在您的routes.py中,它将是

    form.image.process_data(path_to_image)
    

使用Jinja2if条件在HTML表单的文件字段下显示图像缩略图,让用户知道图像已经存在。(我用的是引导卡(

{% if form.image.data%}
<div class="card" style="width: 12rem;">
<img src="{{form.image.data}}" class="card-img-top" alt="{{form.alt.data}}">
<div class="card-body">
<p class="card-text">{{form.alt.data}}</p>
</div>
</div>
  1. POST期间,检查form.img数据是否为NULL。如果不是NULL,则写入数据库。在你的路线上。py,应该是,

    if form.image.data.filename:
    post.img = form.image.data.filename
    

相关内容

  • 没有找到相关文章

最新更新