小编And*_*son的帖子

使 QuerySelectField 选定的数据对象变成文字值

我正在创建我的应用程序的一部分,管理员可以在其中注册用户。我有一个注册表单,其中表单的一个元素是QuerySelectField从 db 获取用户也可以链接的位置列表。我可以显示QuerySelectField正确的信息,但在提交表单时出现错误

Sqlalchemy.exc.ArgumentError:对象“站点”作为 SQL 文字值不合法

尝试在我的表单站点模型中查询数据库以查找所选选项的名称时会出现此错误,QuerySelectField以便我可以将特定站点的 ID 存储在变量中以供进一步使用。

我不确定如何使对象成为 sqlalchemy 可以读取的文字值。我尝试将它包装在 str() 中,但这没有任何作用。顺便说一下,我是个菜鸟,所以我仍在努力了解烧瓶的某些元素。

这是我要完成的工作的表格

def site():
    return Sites.query.all()

class RegistrationForm(FlaskForm):
    username = StringField('Username', validators=[DataRequired(), 
Length(min=2, max=20)])
    email = StringField('Email', validators=

[DataRequired(), Email()])
        password = PasswordField('Password', validators=[DataRequired()])
        confirm_pass = PasswordField('Confirm Password', validators= 
   [DataRequired(), EqualTo('password')])
        admin_status = BooleanField('Check for Admin Status')
        sitechoices = QuerySelectField(query_factory=site, allow_blank=False, 
   get_label='sitename')
Run Code Online (Sandbox Code Playgroud)

这是我的 routes.py 中的路线信息

@app.route('/register', methods=['POST', 'GET'])
@login_required
def register():
    forms = RegistrationForm()
    if forms.validate_on_submit():
        hashed_pw = bcrypt.generate_password_hash(forms.password.data).decode('utf-8')
        siteid = …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy flask

0
推荐指数
1
解决办法
873
查看次数

标签 统计

flask ×1

python ×1

sqlalchemy ×1