フィールドの「ユニークな」制約が機能しない理由を理解しようとしています。 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