I'm trying to create a form to enable users to add blog posts with images using flask and I saved the name of the picture in the database using SQLAlchemy like this "<FileStorage: 'IMG_20210415_114702.jpg' ('image/jpeg')>" as the name of the picture instead of this 'IMG_20210415_114702.jpg'. Please how do I correct this?
class Post(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(255))
content = db.Column(db.Text)
author = db.Column(db.String(255))
date_posted = db.Column(db.DateTime, default=datetime.utcnow)
slug = db.Column(db.String(255))
poster_id = db.Column(db.Integer, db.ForeignKey("users.id"))
post_pic = db.Column(db.String(200), nullable=True)
@app.route("/add-post", methods=["GET", "POST"])
#@login_required
def add_post():
form = PostForm()
if form.validate_on_submit():
poster = current_user.id
post = Post(title=form.title.data, content=form.content.data, poster_id=poster, slug=form.slug.data, post_pic=form.post_pic.data)
form.title.data = ''
form.content.data = ''
#form.author.data = ''
form.slug.data = ''
name = ''
form.post_pic.data = request.files['post_pic']
name = form.post_pic.data.filename
filepath = os.path.join(app.config['UPLOAD_FOLDER'], name)
form.post_pic.data.save(filepath)
#postpic_filename = secure_filename(form.post_pic.data.filename)
#postpic_name = str(uuid.uuid1()) + "_" + postpic_filename
#saver = request.files['post_pic']
#form.post_pic.data = postpic_name
db.session.add(post)
db.session.commit()
#saver.save(os.path.join(app.config['UPLOAD_FOLDER'], postpic_name))
flash("post submitted successfully!")
return render_template("add_post.html", form=form)