flask sqlalchemy唯一约束不起作用

时间:2015-10-31 18:17:51

标签: flask-sqlalchemy unique-constraint nonetype

我正在阅读Miguel的精彩烧瓶网络开发书。我对模型有疑问。

这是我的用户模型

class User(db.Model):
   __tablename__ = 'users'
   id = db.Column(db.Integer, primary_key=True)
   username = db.Column(db.String(64), unique=True, index=True)
   role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))

   def __repr__(self):
       return '<User %r>' % self.username

在模型中,它提到了&#39;用户名&#39;字段是唯一的,这意味着此列应具有唯一值。

然而,我在User模型中的条目具有相同的值。

以下是shell会话的片段。

for user in User.query.all():
    print user.username

输出:

None
None
None
None
None
None
None
None
None
None
None
None

我想知道为什么允许多次创建username=None条目?

由于

1 个答案:

答案 0 :(得分:3)

您必须在nullable=False列声明中添加条款username

username = db.Column(db.String(64), unique=True, index=True, nullable=False)

DB不会将None作为值。