WTForm SelectField со значениями из базы данных - PullRequest
1 голос
/ 27 мая 2020

Я хочу извлечь значения из базы данных и подставить их в SelectField, но получаю такую ​​ошибку. Что я делаю не так?

Я пробовал QuerySelectField, но, насколько я понимаю, не могу получить оттуда значение проекта

forms.py

class SelectProjectForm(FlaskForm):
    project_choices = [(projects.id, projects.project) for projects in Projects.query.all()]
    project_select = SelectField("Project", choices=project_choices)

models.py

class Projects(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    project = db.Column(db.String(255), unique=True, nullable=False)

views.py

@main_blueprint.route("/")
def home():
    select_project = SelectProjectForm()
    return render_template("main/home.html",
                           select_project=select_project)

error

Traceback (most recent call last):
  File "/Users/davidamb/adv_it_flask_deploy_aws/venv/lib/python3.7/site-packages/sqlalchemy/util/_collections.py", line 1030, in __call__
    return self.registry[key]
KeyError: 4504378816

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "manage.py", line 15, in <module>
    app = create_app()
  File "/Users/davidamb/adv_it_flask_deploy_aws/accesses/project/server/__init__.py", line 49, in create_app
    from project.server.main.views import main_blueprint
  File "/Users/davidamb/adv_it_flask_deploy_aws/accesses/project/server/main/views.py", line 8, in <module>
    from project.server.main.forms import AddressForm, AppForm, SelectAddrForm, SelectAppForm, SelectProjectForm, AccessName, CreateProject
  File "/Users/davidamb/adv_it_flask_deploy_aws/accesses/project/server/main/forms.py", line 35, in <module>
    class SelectProjectForm(FlaskForm):
  File "/Users/davidamb/adv_it_flask_deploy_aws/accesses/project/server/main/forms.py", line 36, in SelectProjectForm
    project_choices = [(projects.id, projects.project) for projects in Projects.query.all()]
  File "/Users/davidamb/adv_it_flask_deploy_aws/venv/lib/python3.7/site-packages/flask_sqlalchemy/__init__.py", line 519, in __get__
    return type.query_class(mapper, session=self.sa.session())
  File "/Users/davidamb/adv_it_flask_deploy_aws/venv/lib/python3.7/site-packages/sqlalchemy/orm/scoping.py", line 78, in __call__
    return self.registry()
  File "/Users/davidamb/adv_it_flask_deploy_aws/venv/lib/python3.7/site-packages/sqlalchemy/util/_collections.py", line 1032, in __call__
    return self.registry.setdefault(key, self.createfunc())
  File "/Users/davidamb/adv_it_flask_deploy_aws/venv/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 3254, in __call__
    return self.class_(**local_kw)
  File "/Users/davidamb/adv_it_flask_deploy_aws/venv/lib/python3.7/site-packages/flask_sqlalchemy/__init__.py", line 136, in __init__
    self.app = app = db.get_app()
  File "/Users/davidamb/adv_it_flask_deploy_aws/venv/lib/python3.7/site-packages/flask_sqlalchemy/__init__.py", line 982, in get_app
    'No application found. Either work inside a view function or push'
RuntimeError: No application found. Either work inside a view function or push an application context. See http://flask-sqlalchemy.pocoo.org/contexts/.

Спасибо за любую помощь.

...