1
class MyObject(Entity):
    name = Field(Unicode(256), default=u'default name', nullable=False)

    using_options(shortnames=True)
    using_mapper_options(save_on_init=False)

    def __init__(self):
        self.name = None  

在这种情况下,我使用的是 MySQL,但也检查了 SQLite,我得到了相同的结果。它尊重nullable,但完全忽略default。我没有收到任何错误消息,它可以很好地创建表。我可以返回并添加默认值,但如果可能的话,我想避免这种严重的痛苦。

我已经尝试过使用其他 Field 类型,但仍然没有乐趣。

4

1 回答 1

2

defaultSQLAlchemy 中的关键字参数是 Python 运行时默认值,它用于 INSERT 语句。PassiveDefault()当您确实需要数据库级别的默认值时,使用对象作为位置参数。

于 2009-11-16T05:13:59.813 回答