NOT NULL没有出现在web2py的数据库表中?

时间:2014-01-20 21:25:14

标签: web2py

在我的模型中,我有一个如此定义的表:

db.define_table('address',
    Field('address1','string'),
    Field('address2','string'),
    Field('city','string'),
    Field('state','string'),
    Field('postal_code','string'),
    Field('country','string'),
    )

db.address.address1.notnull = True
db.address.city.notnull = True
db.address.country.notnull = True    

但是,在数据库(postgresql)中生成此表时,关联字段没有NOT NULL约束。为什么?如何确保添加NOT NULL约束?

1 个答案:

答案 0 :(得分:1)

在调用db.define_table()时完成迁移(包括创建尚不存在的表),因此影响实际数据库模式的任何属性都必须包含在初始字段定义中,而不是之后(您可以在db.define_table()调用之后设置特定于web2py的字段属性,例如“表示”,“要求”,“默认”,“可读”等。所以,应该是:

Field('address1','string', notnull=True)