स्क्लेक्लेमी घोषणात्मक में, मैं कॉलम के लिए डिफ़ॉल्ट मान कैसे सेट करूं, जैसे कि क्षणिक या लंबित ऑब्जेक्ट उदाहरणों में वे डिफ़ॉल्ट मान होंगे? एक छोटी उदाहरण:मैं sqlalchemy घोषणात्मक में विशेषता डिफ़ॉल्ट मान कैसे सेट करूं?
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class A(Base):
__tablename__ = "A"
id = Column(Integer, primary_key=True)
word = Column(String, default="adefault")
a = A()
print a.word
भोलेपन से, मैं इस से उत्पादन adefault
होने की अपेक्षा करेंगे। बेशक, आउटपुट वास्तव में None
है। सत्र में जोड़ने पर भी, यह None
रहता है और जब मैं सत्र (या फ्लश) करता हूं तो केवल तभी भर जाता है, और डेटाबेस से इंस्टेंस मान को फिर से पढ़ता है।
क्या डेटाबेस में उदाहरण को फ़्लश किए बिना एक विशेषता डिफ़ॉल्ट सेट करने का कोई तरीका है? मैंने ColumnDefault
दस्तावेज़ीकरण की जांच करने की कोशिश की, और टाइप/पायथन मूल्य का निरीक्षण करने के लिए एक स्पष्ट तरीका प्रतीत नहीं होता है, ताकि इसे मैन्युअल रूप से कस्टम घोषणात्मक बेसक्लास में सेट किया जा सके।
यह भी देखें: https://stackoverflow.com/q/14002631/6646912 – krassowski