2
我想弄清楚为什么字段的“独特”约束不起作用。我正在使用Flask,SQLAlchemy和Sqlite。Flask-sqlalchemy独特的约束不起作用
考虑模型:
from app import db
from flask_login import UserMixin
class User(UserMixin, db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), unique=True)
password = db.Column(db.String(64))
email = db.Column(db.String(120), unique=True)
def __repr__(self):
return '<User %r>' % self.username
我所期望的,因为是在用户名字段唯一约束,它不会让我有相同的用户名添加用户。它确实如此。
从贝:
from app import db
from app.models import User
user = User(username='test')
user2 = User(username='test')
db.session.add(user)
db.session.commit()
db.session.add(user2)
db.session.commit()
User.query.all()
输出:
[<User 'test'>, <User 'test'>]
我缺少的东西?
您确定您确实在数据库中有唯一的约束,而不仅仅是模型定义吗? – univerio