当我自己的列更改时更新我的推荐的SQLAlchemy列

2024-05-23 20:54:57 发布

您现在位置:Python中文网/ 问答频道 /正文

无论何时我的钱包_1被修改为+1或任何值,我都希望获得该值并将其添加到我的推荐钱包(Joshua wallet_2)的钱包_2以及钱包_2中,如果我的钱包_2被修改为+1或任何值,我希望获得该值并将其添加到我的推荐钱包(Joshua wallet_3)的钱包_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)

Tags: keyidtruedefaultdbstringmodeldef
1条回答
网友
1楼 · 发布于 2024-05-23 20:54:57

首先,为什么不使用类来构建db模型

根据我找到的on sqlalchemy docs,尝试这种方法

If you want to even update wallet3 based on what's happening in wallet2-您可以随时设置一些功能,如更新钱包。例如,更新钱包2等。。。他们会互相提及。我无法访问您的应用程序和整个环境,从我的角度来看,这是我能提供的最大帮助。停止猜测、过度思考,尝试设置这些功能,然后测试&;调试直到成功

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功能被触发。它正在检索给定值,并为钱包2插入/更新该值

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

相关问题 更多 >