flask admin:sqlalchemy.exc.InterfaceError(错误绑定参数8) [英] flask admin : sqlalchemy.exc.InterfaceError(Error binding parameter 8)

查看:176
本文介绍了flask admin:sqlalchemy.exc.InterfaceError(错误绑定参数8)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正尝试使用下面的方法保存项目的审阅者,并且选择字段显示正确:

I was trying to save a project's reviewer using below, and the select field shows correct:

# Query the user with Role.id == 4 as reviewer
def reviewer_choices():
    return User.query.join(User.roles).filter(Role.id == 4)

# Build a select field
class ProjectView(sqla.ModelView):
 form_extra_fields = {
    'reviewer': sqla.fields.QuerySelectField(
    label='Reviewer',
    query_factory=reviewer_choices,
 )}

但是,当我尝试保存它时,发生了错误:

However, when I was trying to save it, the error occurred:

InterfaceError: (sqlite3.InterfaceError) Error binding parameter 8 - probably unsupported type. [SQL: u'INSERT INTO project(...reviewer...)VALUES(...<__main__.User object at 0x00000000048E89E8>...).

我注意到审阅者是一个对象,类似于:<__main__.User object at 0x00000000048E89E8>.那么,审阅者的正确数据类型是什么,以便可以将其保存到数据库中?我目前使用过:

And I noticed that the reviewer is an object, something like: <__main__.User object at 0x00000000048E89E8>. So what is the correct data type of reviewer so I can save it into database? I currently used:

在项目类中

class Project(db.Model):
   # ...
   reviewer = db.Column(db.Unicode(128)) 
   # ...

在项目表中

CREATE TABLE `project` (
   # ...
   `reviewer1`  TEXT,
   # ...

而且我也尝试定义__repr____str__,但是都没有用:

And I also tried to define __repr__ and __str__ but both not worked:

class User(db.Model, UserMixin):
   id = db.Column(db.Integer, primary_key=True)
   first_name = db.Column(db.String(255))
   # ...
   # ...
   def __repr__(self):
     return self.first_name

class User(db.Model, UserMixin):
   id = db.Column(db.Integer, primary_key=True)
   first_name = db.Column(db.String(255))
   # ...
   # ...
   def __str__(self):
     return self.first_name

推荐答案

很明显.审阅者是在Project中定义的字符串.您可以在用户模型中定义__repr__函数以返回字符串(用户名或其他名称).选中此问题.

It's obviously. The reviewer is a string defined in Project. You can define a __repr__ function in User model to return a string(name of user or something else). Check this question.

这篇关于flask admin:sqlalchemy.exc.InterfaceError(错误绑定参数8)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆