我需要实现对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内容并不意味着对我的代码进行大量重构?