我正在構建一個web應用程序。我有以下模型。如何根據同一模型的其他兩列設置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")
等,並更新這樣的。但是有沒有一種方法可以在模型中定義一些東西,所以它可以在沒有三角形的情況下自動完成? `
如果用戶名了'db.Column(db.String(64))'在你的答案?我是否也可以將它寫成列? –
「用戶名」不是一列。它不會被存儲在數據庫中(這是一件好事),但會*表現爲像列一樣。例如,先前創建了Staff(first_name ='John',last_name ='Smith')',您可以用'Staff.query.filter_by(username ='John Smith')。one()'查詢它。 – krassowski
和'username'的最大區別是128;你可以使用驗證器來限制兩列的sumaric長度。請參閱本討論:https://stackoverflow.com/a/18580815/6646912 – krassowski