私はWebアプリケーションを構築しています。私は次のモデルを持っています。同じモデルの2つの他の列に基づいてsqlalchemyの列の値を設定する方法はありますか?
class Staff(db.Model):
id = db.Column(db.Integer, primary_key=True)
store_id = db.Column(db.Integer, db.ForeignKey('store.id'))
first_name = db.Column(db.String(64))
last_name = db.Column(db.String(64))
username = db.Column(db.String(64))
cell_phone = db.Column(db.Integer)
email = db.Column(db.String(64))
position = db.Column(db.String(64))
# add average salary value based on payroll
私はusername
フォームでのみ彼の最初と最後の名前を入力し、ユーザとfirst_name+last_name
になりたいです。
私は@db.event.listens_for(Staff, "after_insert")
などの使い方を知っており、そのように更新しています。しかし、モデル内に何かを定義する方法があるので、それはtrigerなしで自動的に行いますか? `
答えに「db.Column(db.String(64))」というユーザー名がある場合は、私はまたそれを列として書くことができますか? –
'username'は列ではありません。データベースには格納されませんが(良いことですが)、カラムのように動作します*。たとえば、以前に作成された 'Staff(first_name = 'John'、last_name = 'Smith')'を持つと、 'Staff.query.filter_by(username = 'John Smith')。 – krassowski
'username'の最大の違いは128です。バリデーターを使用して2つの列の長さを制限することができます。この議論を参照してください:https://stackoverflow.com/a/18580815/6646912 – krassowski