2011-03-14 74 views
3

作爲一名Python程序員,我喜歡我的代碼是可重用的,我試圖避免在我的代碼中出現好的名稱衝突(兩個不同的模型共享相同的名稱善良的名字)。設置一個與模型名稱無關的名稱(App Engine數據存儲)

目前我只是在模型的類名前添加了一些有意義的文本,但是這非常和諧。

能夠明確地設置模型的類型將解決我的問題,但我不知道如何做到這一點,有誰知道如何?

+1

你可以發表一個或兩個你正在談論的衝突嗎?你是如何碰到具有相同類名的模型的? – 2011-03-14 15:51:22

回答

10

只是覆蓋類的kind()方法:

class MyModel(db.Model): 
    @classmethod 
    def kind(cls): 
    return 'prefix_%s' % super(MyModel, cls).kind() 

可以定義,這是否一個自定義的基類爲您:

class ModuleModel(db.Model): 
    @classmethod 
    def kind(cls): 
    return '%s_%s' % (cls.__module__, super(ModuleModel, cls).kind()) 

延伸ModuleModel會的名稱的任何類模塊的名稱前面定義了它。