我想列出一条信息的sources
。我不愿使用one to many
类型来创建另一个具有Array
关系的表。
我尝试过:
app = Flask(__name__)
db = SQLAlchemy(app)
...
class Edge(db.Model):
sources = db.Column(
db.ARRAY(db.String),
default=db.ARRAY(db.String)
)
但是添加一个edge
会给我这个错误:
ProgrammingError:(psycopg2.ProgrammingError)无法适应类型'ARRAY'[SQL:'INSERT INTO edge(child_id,parent_id,sources)VALUES(%(child_id)s,%(parent_id)s,%(sources) s'] [参数:{'child_id':20,'parent_id':26,'sources':ARRAY(String())}]
我找不到关于如何使用默认情况下的array
列的好的教程
空数组。
谢谢
答案 0 :(得分:1)
我最终在评论here中找到了答案:
sources = db.Column(
db.ARRAY(db.String),
server_default="{}"
)
答案 1 :(得分:0)
也可以将python可调用项设置为默认值:
sources = db.Column(
db.ARRAY(db.String),
default=dict
)