class GuideForms(FlaskForm):
FileField = FileField('FileField')
FileFiled_hidden = HiddenField()
text = HiddenField()
text.data = url_for('admin.gen')
上面的代码导致此错误:
“尝试在没有应用程序上下文的情况下生成URL” RuntimeError:尝试在不推送应用程序上下文的情况下生成URL。当应用程序上下文可用时,必须执行此操作。
是否可以将字段(文本)的固定值定义为url_for?
答案 0 :(得分:0)
如我所见,python在其路由之前生成其形式。因此,将表单值定义为url_for('blueprint.route')基本上是不可能的。
您必须执行的解决方法是: 在路由中使用表单时,为form.field.data设置一个值。
@blueprint.route("/upload")
def upload():
form = GuideForms()
form.text.data = url_for('admin.gen')
答案 1 :(得分:0)
您可以在创建此表单的实例时执行此操作, 尝试,
class GuideForms(FlaskForm):
FileField = FileField('FileField')
FileFiled_hidden = HiddenField()
text = HiddenField()
def __init__(self, , *args, **kwargs):
super(GuideForms, self).__init__(*args, **kwargs)
text.data = url_for('admin.gen')
并确保在存在应用程序上下文时创建此表单的实例