【发布时间】:2020-07-19 11:39:46
【问题描述】:
每次我发布没有图片的新帖子时,我都会收到该错误。如何做到这一点,我只能发布带有图像的文本或/和文本。提前致谢!
我的帖子
class PostForm(FlaskForm):
title = StringField('Title', validators=[DataRequired()])
content = TextAreaField('Content', validators=[DataRequired()])
photo = FileField('Image to post', validators=[FileAllowed(['jpg', 'png'])])
submit = SubmitField('POST')
我的路线
@app.route('/post/new', methods=['GET', 'POST'])
def new_post():
form = PostForm()
if form.validate_on_submit():
if form.photo.data:
photo = save_photo(form.photo.data)
post = Post(title=form.title.data, content=form.content.data, image=photo ,author=current_user)
db.session.add(post)
db.session.commit()
......
当我点击 POST 按钮时,我从服务器收到错误 post = Post(title=form.title.data, content=form.content.data, image=photo ,author=current_user) UnboundLocalError:分配前引用的局部变量“照片”
【问题讨论】:
-
我可以猜到如果 form.photo.data 不是 True 那么变量 photo 没有被初始化。你必须在之后添加一个 else 语句来初始化变量或者只是打破循环
标签: python flask sqlalchemy jinja2 flask-wtforms