Python WTForm SelectField包含数据库中的值

Python WTForm SelectField包含数据库中的值,python,flask,sqlalchemy,flask-sqlalchemy,flask-wtforms,Python,Flask,Sqlalchemy,Flask Sqlalchemy,Flask Wtforms,我想提取值​​然后将它们替换到SelectField中,但是我得到了这样一个错误。我做错了什么 我尝试了QuerySelectField,但据我所知,我无法从中获得项目价值 forms.py class SelectProjectForm(FlaskForm): project_choices = [(projects.id, projects.project) for projects in Projects.query.all()] project_select = Sele

我想提取值​​然后将它们替换到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)
错误

回溯(最近一次呼叫最后一次):
文件“/Users/davidamb/adv_it_flask_deploy_aws/venv/lib/python3.7/site packages/sqlalchemy/util/_collections.py”,第1030行,在调用中__
返回self.registry[项]
密钥错误:4504378816
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“manage.py”,第15行,在
app=create_app()
文件“/Users/davidamb/adv_it_flask_deploy_aws/access/project/server/_init__.py”,第49行,在创建应用程序中
从project.server.main.views导入主视图
文件“/Users/davidamb/adv_it_flask_deploy_aws/access/project/server/main/views.py”,第8行,在
从project.server.main.forms导入AddressForm、AppForm、SelectAddrForm、SelectAppForm、SelectProjectForm、AccessName、CreateProject
文件“/Users/davidamb/adv_it_flask_deploy_aws/access/project/server/main/forms.py”,第35行,在
类别选择项目表单(烧瓶表单):
文件“/Users/davidamb/adv_it_flask_deploy_aws/access/project/server/main/forms.py”,第36行,选择项目表单
project_choices=[(projects.id,projects.project)用于projects.query.all()中的项目
文件“/Users/davidamb/adv_it_flask_deploy_aws/venv/lib/python3.7/site packages/flask_sqlalchemy/___init_.py”,第519行,在__
返回类型.query\u类(映射器,session=self.sa.session())
文件“/Users/davidamb/adv_it_flask_deploy_aws/venv/lib/python3.7/site packages/sqlalchemy/orm/scoping.py”,第78行,在调用中__
返回self.registry()
文件“/Users/davidamb/adv_it_flask_deploy_aws/venv/lib/python3.7/site packages/sqlalchemy/util/_collections.py”,第1032行,在调用中__
返回self.registry.setdefault(项,self.createfunc())
文件“/Users/davidamb/adv_it_flask_deploy_aws/venv/lib/python3.7/site packages/sqlalchemy/orm/session.py”,第3254行,在调用中__
返回自功率等级(**本地功率)
文件“/Users/davidamb/adv_it_flask_deploy_aws/venv/lib/python3.7/site packages/flask_sqlalchemy/__init_.py”,第136行,在u init中__
self.app=app=db.get_app()
文件“/Users/davidamb/adv_it_flask_deploy_aws/venv/lib/python3.7/site packages/flask_sqlalchemy/___init_.py”,第982行,在get_应用程序中
“找不到任何应用程序。在视图功能内工作或按
运行时错误:找不到应用程序。在视图函数内部工作或推送应用程序上下文。看见http://flask-sqlalchemy.pocoo.org/contexts/.

Thx需要任何帮助。

,@IljaEveriläQuerySelectField不适合我,因为我需要提取项目价值用于什么目的?展示?您可以使用
get_label
:“指定get_label以自定义与每个选项关联的标签。如果是字符串,则这是要用作标签文本的模型对象上属性的名称。如果单参数可调用,则此可调用将传递给模型实例,并期望返回标签文本。”@IljaEverilänot display,我想将所选值发送到另一个数据库这是从客户端还是在服务器上发生的?由于
Projects.project
是唯一的,您可以使用
get_pk
覆盖选项值,我认为:“或者传递一个可调用的参数来get_pk,该参数可以返回唯一的可比较键。”我感到困惑的原因是,根据文档
SelectField
选项是一个
(值,标签)列表
tuples,因此您在现有尝试中使用
Projects.id
作为值,而不是
Projects.project
,@IljaEveriläQuerySelectField不适合我,因为我需要提取项目值用于什么目的?展示?您可以使用
get_label
:“指定get_label以自定义与每个选项关联的标签。如果是字符串,则这是要用作标签文本的模型对象上属性的名称。如果单参数可调用,则此可调用将传递给模型实例,并期望返回标签文本。”@IljaEverilänot display,我想将所选值发送到另一个数据库这是从客户端还是在服务器上发生的?由于
Projects.project
是唯一的,您可以使用
get_pk
覆盖选项值,我认为:“或者传递一个可调用的参数来get_pk,该参数可以返回唯一的可比较键。”我感到困惑的原因是,根据文档
SelectField
选项是一个
(值,标签)列表
tuple,因此您在现有尝试中使用
Projects.id
作为值,而不是
Projects.project
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/.