Any time my wallet_1 is been modified with +1 or any value, I want to get the value and add it into the wallet_2 of my referral wallet which is (Joshua wallet_2) as well as for wallet_2, if my wallet_2 is been modified with +1 or any value, I want to get the value and add it into the wallet_3 of my referral wallet which is (Joshua 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)
Advertisement
Answer
First of all, why aren’t you using classes to build db models?
Based on what I managed to find on sqlalchemy docs, try this approach.
If you want to even update wallet3 based on what's happening in wallet2
– you can always set a few functions like update_wallet. Eg. update_wallet2 etc… which are gonna be referring to each other. I don’t have access to your application and whole environment, and from my point of view this is the most I can do to help. Stop speculating, overthinking it and just go and try setting up those functions, then test & debug till you success.
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)
So, the update_wallet function is being triggered when INSERT or UPDATE statement occurrs on the wallet_1 column. It is retrieving the given value, and inserting/updating it for the wallet_2.
Just like I mentioned before, carefully try to read through the sqlalchemy docs. Good luck.