db.Model init覆盖技术?

时间:2012-05-07 19:26:01

标签: python google-app-engine inheritance

我需要实现对i18n实体内容的支持。在重构之前,代码如下所示:

class Project (db.Model)
    description = db.TextProperty()

我使用@property builtin实现i18n,以避免重构所有获取或设置描述属性的代码

class Project (db.Model)
    # English
    description_en = db.TextProperty()

    # Spanish
    description_es = db.TextProperty()

    @property
    def description(self):
        return self.description_es

    @description.setter
    def description(self, value):
        self.description_es = value

当我尝试这样做时出现问题:

project = Project(description = "Foo bar")

我在大型代码库中使用该语法来初始化模型,我无法重构。但db.Model init 仅设置db.properties no @properties。

我尝试覆盖db.Model的init方法,但是我遇到了很多错误,似乎is not recommended

我的问题是:

有没有办法安全地覆盖db.Model的初始化方法?

是否还有其他方法可以实现i18n内容并不意味着对我的代码进行大量重构?

0 个答案:

没有答案