0
我從包含其屬性值的類實例中填充表單字段(在pygtk中)。 表單提交後,我使用新值更新了此實例。python:比較提交前後表單中的屬性值
什麼是確定表單是否返回不同值(即:已被修改)的最佳方法?我必須在更新之前製作對象實例的副本,或者在提交時返回副本 - 然後比較每個值(對我來說很重要)。
謝謝
我從包含其屬性值的類實例中填充表單字段(在pygtk中)。 表單提交後,我使用新值更新了此實例。python:比較提交前後表單中的屬性值
什麼是確定表單是否返回不同值(即:已被修改)的最佳方法?我必須在更新之前製作對象實例的副本,或者在提交時返回副本 - 然後比較每個值(對我來說很重要)。
謝謝
您需要在提交表格前後獲得數據副本。默認__eq__
運算符將比較類的所有屬性,因此您可以使用before_form == after_form
來查看是否有任何更改。如果你需要知道發生了什麼變化,那麼你將不得不遍歷每個屬性。
另一種方法是掛鉤表單中字段的onchange事件,並設置一個髒標誌,如果它們中的任何一個被觸發。
謝謝!例如,一個使用copy.deepcopy()的對象實例拷貝? (因爲如果我內部有字典,它的參考將被共享,對吧?) – Martin 2011-06-10 09:48:28
是的,這是正確的。 – 2011-06-10 09:55:00
我可能會選擇Andrew的第二個建議:標記已更改的字段。 – Walter 2011-06-10 11:09:41