मुद्दा यह है कि जब मैं किसी ऑब्जेक्ट को किसी नए राज्य में जाता हूं तो मुझे सूचित करने के लिए SQLAlchemy का उपयोग कैसे करें Iडीबी अपडेट के बाद मुझे एसक्यूएलकेमी ओआरएम ऑब्जेक्ट की पिछली स्थिति कैसे मिल सकती है?
मैं SQLAlchemy ORM (घोषणात्मक) का उपयोग कर रहा एक वस्तु अद्यतन करने के लिए:
class Customer(declarative_base()):
__table_name__ = "customer"
id = Column(Integer, primary_key=True)
status = Column(String)
मुझे पता है कि जब एक वस्तु एक राज्य में प्रवेश करती चाहते हैं। विशेष रूप से एक अद्यतन के बाद जारी किया गया है और जब राज्य बदलता है। जैसे Customer.status == 'registered'
और इससे पहले एक अलग राज्य था।
मैं वर्तमान में एक 'set'
विशेषता घटना के साथ इस कर रहा हूँ:
from sqlalchemy import event
from model import Customer
def on_set_attribute(target, value, oldvalue, initiator):
print target.status
print value
print oldvalue
event.listen(
Customer.status,
'set',
on_set_attribute,
propagate=True,
active_history=True)
मेरे कोड 'set' हर बार है कि विशेषता पर कहा जाता है आग, और मैं जाँच अगर value
और oldvalue
अलग हैं। समस्या यह है कि target
पैरामीटर पूरी तरह से गठित नहीं है, इसलिए इसमें अभी तक सभी विशेषता मान पॉप्युलेट नहीं हैं।
क्या ऐसा करने का कोई बेहतर तरीका है? धन्यवाद!