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类型,但仍然没有快乐。
答案 0 :(得分:2)
default
关键字参数是针对Python运行时的默认值,它用于INSERT语句。当您确实需要数据库级别默认值时,使用PassiveDefault()
对象作为位置参数。