当我自己的专栏发生变化时,更新我推荐的SQLAlchemy专栏



每当我的wallet_1被修改为+1或任何值时,我都想获得该值并将其添加到我的推荐钱包的wallet_2中,即(Joshua wallet_2(。对于wallet_2,如果我的wallet _2被修改为+1或任何值,我都希望获得该值,并将它添加到我推荐钱包的wallet_3中,即:(Joshuaa wallet_3(。

def User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String)
my_referral = db.Column(db.String) #referral = Joshua
def Wallet(db.Model):
id = db.Column(db.Integer, primary_key=True)
wallet_1 = db.Column(db.Float, default=0.0)
wallet_2 = db.Column(db.Float, default=0.0)
wallet_3 = db.Column(db.Float, default=0.0)

首先,为什么不使用类来构建数据库模型?

根据我在sqlalchemy文档中找到的内容,尝试一下这种方法。

If you want to even update wallet3 based on what's happening in wallet2-您可以随时设置一些函数,如update_wallet。例如update_wallet2等,它们将相互引用。我无法访问您的应用程序和整个环境,从我的角度来看,这是我能做的最多的帮助。停止猜测,过度思考,去尝试设置这些功能,然后测试&调试直到成功。

def update_wallet(context):
return context.get_current_parameters()['wallet_1']
# every function gonna follow the same pattern
def update_wallet3(context):
return context.get_current_parameters()['wallet_2']

class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String)
referral = db.Column(db.String)

class Wallet(db.Model):
id = db.Column(db.Integer, primary_key=True)
wallet_1 = db.Column(db.Float, default=0.0)
wallet_2 = db.Column(db.Float, default=0.0, onupdate=update_wallet)
wallet_3 = db.Column(db.Float, default=0.0, onupdate=update_wallet3)

因此,当wallet_1列上出现INSERT或update语句时,将触发update_wallet函数。它正在检索给定的值,并为wallet_2插入/更新该值。

正如我之前提到的,请仔细阅读sqlalchemy文档。祝你好运

最新更新