は、同じ人が、同じ名前の犬を持つことができないということですが、他の所有者にフラスコ関係、一意の列名は、私が欲しいもの
class Person(db.Model):
id = db.Column(db.Integer,primary_key=True)
name = db.Column(db.String(20))
pets = db.relationship('Pet',backref='person',lazy='dynamic')
class Pet(db.Model):
id = db.Column(db.Integer,primary_key=True)
name = db.Column(db.String(20),unique=True)
owner_id = db.Column(db.Integer,db.ForeignKey('person.id'))
犬のそれと同じ名前があることができれば
例えばPersonテーブルには、これらの名前があります。['fran'、 'larson'、 'pedro']というアイデアは、ペットテーブルに同じ名前の3人のペットがいるかもしれないが、たとえば、同じ名前を人に付けた場合
pets_fran = ['name_pet_1'、 'name_pet_2'] < ---
pets_larson = [ 'name_pet_4'、 'name_pet5'、 'name_pet_4'] < ---あなたは同じ名前の2匹のペットを持っているので、これを拒否
pets_pedro = [ 'name_pet_1'、 'name_pet_6'、 'name_pet_7'
class Pet(db.Model):
id = db.Column(db.Integer,primary_key=True)
name = db.Column(db.String(20),unique=True)
owner_id = db.Column(db.Integer,db.ForeignKey('person.id'))
__table_args__ = (db.UniqueConstraint('owner_id', 'name'),)
をだから今あなたがこれを使用する場合:] < ---ペドロのマスコットとフランは、あなたがPet
テーブルにUniqueConstraint
を追加することができ、同じ名前を持っていますが、彼らは別の所有者