2011-03-14 47 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会的名称的任何类模块的名称前面定义了它。