我有一個SQLAlchemy ORM,它的__str__()
函數打印一個鍵和值的表。 下面的代碼其提交至數據庫並打印出來(屬性名稱更改爲清楚起見):SQLAlchemy:提交後的行爲不一致
user.some_attribute = <Some integer>
session.add(user)
session.commit()
app.logger.debug("some_attribute is %s" % user.some_attribute)
app.logger.debug("Created a DB row:\n%s" % user)
這裏瘋狂的事情是,第二調試只打印工作,如果第一個調試的存在!
換句話說,如果存在兩個調試線,我得到:
some_attribute is 5
+------------------------------------------+-------------------------------------------------+
| Field | Value |
+------------------------------------------+-------------------------------------------------+
| creation_time | 2016-09-26 15:25:45.630230 |
| description | Test Poly 835 |
| destination_truck_ids | ['A'] |
| future_event_series_id | None |
| id | 1017 |
...
但如果只有第二個是現在,我得到:
+-------+-------+
| Field | Value |
+-------+-------+
+-------+-------+
爲什麼會出現ORM沒有屬性,除非其特徵之一被打印?
你是怎麼得到'__str__'來生成所有這些?在我的例子中,'str(user)'是我總是期望的:'__ main __。0x0000000003866FD0>的用戶對象'。 – zvone