Как установить фиксированное значение поля как url_for ('blueprint.route') - PullRequest
0 голосов
/ 15 октября 2019
class GuideForms(FlaskForm):
  FileField = FileField('FileField')
  FileFiled_hidden = HiddenField()
  text = HiddenField()

  text.data = url_for('admin.gen')

Приведенный выше код приводит к этой ошибке:

"Попытка сгенерировать URL без контекста приложения" RuntimeError: Попытка сгенерировать URL без перетаскивания контекста приложения. Это должно быть выполнено, когда контекст приложения доступен.

Есть ли способ определить фиксированное значение поля (текста) как url_for?

Ответы [ 2 ]

0 голосов
/ 15 октября 2019

Вы можете сделать это при создании экземпляра этой формы, попробуйте,

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')

И убедитесь, что вы создаете экземпляр этой формы при наличии контекста приложения

0 голосов
/ 15 октября 2019

Как я вижу, python генерирует свои формы перед своими маршрутами. Таким образом, в принципе невозможно определить значение формы как url_for ('blueprint.route').

Обходной путь, который вы должны сделать: Укажите значение для form.field.data, когда форма используется в маршруте.

@blueprint.route("/upload")
def upload():
  form = GuideForms()
  form.text.data = url_for('admin.gen')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...