我目前正在使用Flask和flask-login构建一个标准应用程序。它是常规的东西,带有蓝图,Flask-WTF和其他功能。
我遇到的问题是,当我尝试在具有Flask-WTF格式定义的类中调用的模型中使用current_user时,它返回None。
这是模型:
class Keywords(object):
"""docstring for Tags"""
def taglist(self):
print('CURRENT_USER in Keywords: ', current_user) <----- None
ticket = current_user.ticket if current_user else 'test'
response = TagClient().tags(ticket)
print(response)
if response.status_code == 200:
data = response.body['list']['entries']
return [(entry['entry']['id'], entry['entry']['tag']) for entry in data]
return []
这是Flask-WTF表单类:
class FileForm(FlaskForm):
"""docstring for FileForm"""
print(current_user)
_keywords = Keywords().taglist() <----- THIS DOESN'T WORK
# print('Keywords: ', _keywords)
file = FileField('File', validators=[FileRequired(), FileAllowed(datasets, 'Datasets only!')])
title = StringField('Title', validators=[InputRequired()])
shortname = StringField('Short name', validators=[InputRequired()])
abstract = TextAreaField('Abstract', validators=[Optional()])
但是,如果我在控制器中创建模型的实例,则它将起作用,并且current_user返回用户。
def upload():
form = FileForm(formdata=None)
# keywords = Keywords().taglist() <----- THIS WORKS!
# print(keywords)
return render_template('files/upload/wizard.html', user=current_user, title='Upload files', form=form, tree=tree, js=js)
我想念什么吗?
在此先感谢您提供的任何指导。