2010-04-13 62 views
2

似乎unique約束在GAE中不是本機支持的,儘管one can enforce unique check before putting an object to storeGAE中數據級別的唯一約束

但那是在2009年1月,現在呢?在模式創建期間,我可以在列上指定unique約束嗎?即

class Account(db.Model): 
    name = db.StringProperty() 
    email = db.StringProperty() as unique # something like this 
    @classmethod 
    def create(cls, name, email): 
    a = Account(name=name, email=email) 
    a.put() 
    return a 

回答

4

不,你仍然不能在模式創建期間指定唯一的。

這個問題位於here,以防您想要觀看它。它沒有顯示在features on deck的列表中,所以它似乎還有其他功能,他們將首先處理。

+4

支持密鑰名稱以外的獨特屬性將需要全局事務,因此我們不太可能在短時間內添加它。現在,您可以通過關鍵名稱或「旁視」實體自己實現唯一性。 – 2010-04-13 09:50:22

0

您可以在應用引擎的數據存儲as described here中實現「唯一約束」。這個例子用Java表示,但你應該能夠在python中應用相同的概念。