2010-03-24 25 views

回答

3

存儲在ZODB中的每個對象不具有唯一的ID的所有對象的唯一標識,可訪問對象之後其_p_oid屬性已經註冊:

>>> obj._p_oid 

有關主鍵通常的警告也適用 - 如果你需要一個唯一的標識符,您可以繼續,即使你需要將對象導出到不同的數據庫使用,你最好使用自己管理的uuid。 Python有一個uuid模塊(在Python 2.6以後的stdlib中)可以生成uuids。

+0

感謝您的答覆。我維護每個類參數的Id屬性。但是當我創建動態對象時,我需要始終增加它。因此,我需要一種方法,其中值不會在ZODB中被覆蓋 – gizgok 2010-04-18 15:15:04

+1

由於ZODB的多版本併發控制(MVCC)功能,在ZODB內單調增加ID會非常棘手。如果你可以設計你的應用程序來避免它的需要,我會建議。如果你確實需要它,我建議你重新提出你的問題,具體是關於如何安排在ZODB中單調遞增的ID。 – 2010-04-18 23:07:06