模型代码:
class Problems(db.Model):
__tablename__ = 'problems'
id = db.Column(db.String(45), primary_key=True)
......
def __init__(self):
self.id = str(uuid4())
用的是 Flask Admin 默认生成的模型视图,创建后提交报错
sqlalchemy.orm.exc.FlushError: Instance <Problems at 0x7e3b050> has a NULL identity key. If this is an auto-generated value, check that the database table allows generation of new primary key values, and that the mapped Column object is configured to expect these generated values. Ensure also that this flush() is not occurring at an inappropriate time, such as within a load() event.
目前我只能加上默认自动生成,不知道有没有更好的办法,或者说问题的关键在哪里?
id = db.Column(db.String(45), primary_key=True, default=str(uuid4()))
1
cz5424 2019-11-15 08:10:19 +08:00 via iPhone
9102 年用前后端分离吧,这个很不好用是真的
|
2
jry 2019-11-15 08:37:06 +08:00 via iPhone
同意 1 楼
|
3
mianbao1 2019-11-15 08:43:52 +08:00 via iPhone
同意 2 楼
|
5
Latin 2019-11-15 09:02:32 +08:00
重写 database 基类 CRUD 都写上,继承下就 OK 了
|
6
encro 2019-11-15 09:03:24 +08:00
id = db.Column(db.String(45), primary_key=True, default=str(uuid4()))
这个就是对的,应该没有更好的办法。 |
8
ilittlesun 2020-06-11 11:25:40 +08:00
或者 id = db.Column(db.String(45), primary_key=True, autoincrement=True)
|
9
sugarkeek OP @ilittlesun 哈哈,很久之前的回答了。我后来查了 Flask Admin 的文档,他们目前只支持整数作为主键
|