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