0
我有一個SQLAlchemy的模型具有這樣的柱:設置spyne跳過SOAP請求中不存在的字段?
updated_at = Column(DateTime, nullable=False, server_default=func.now(),
onupdate=func.now())
產生WSDL:
<xs:element name="updated_at" type="xs:dateTime" minOccurs="0"/>
在更新請求updated_at
字段缺失,和spyne其值映射爲None
導致此:
IntegrityError: (IntegrityError) null value in column "updated_at" violates not-null constraint
'UPDATE subcsription SET updated_at=%(updated_at)s WHERE subcsription.id = %(subcsription_id)s' {'subcsription_id': 27, 'updated_at': None}
我怎麼可以設置spyne跳過場時,它不是在SOAP請求傳遞呢?
這意味着手動指定字段並排除其中的一些?因爲現在字段會自動從SQLALchemy模型中提取。如果沒有在SOAP請求中傳遞傳入對象的話,我最終將猴子補丁spyne設置爲不設置傳入對象的字段值。這也解決了一個問題,當一個spyne字段是可選的,但它沒有被傳入SOAP請求中,導致它被'None'覆蓋。 – warvariuc
這不需要手動完成,請參閱我的編輯。另外,你可以分享你的猴子修補代碼在一些github的要點?它可以幫助其他人。 –