覆盖ndb.Model构造函数

时间:2013-08-26 14:53:06

标签: google-app-engine app-engine-ndb

我有一个如此定义的nbd模型:

class Attachment(ndb.Model):

    id              = ndb.StringProperty(indexed=True)
    mime_type       = ndb.StringProperty()
    contents        = ndb.StringProperty()
    modified_date   = ndb.DateTimeProperty(auto_now_add=True)

    def __init__(self, *args, **kwargs):
        super(Attachment, self).__init__(*args, **kwargs)

根据文档和巧合的BDFL方向,您可以通过调用上面的__init__来覆盖ndb.Model子类中的super();但是,每次我尝试创建一个新实例时如下: Attachment(id='such',mime_type='img/jpeg')不断抛出那些意外的错误。

我错过了什么?非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

好吧,似乎我弄乱了模型定义,并且由于神圣的天意而工作。相关文件:

  

您无法轻松定义名为" key"," id"," parent"或" namespace"的属性。例如,如果你通过了key =" foo"在构造函数或populate()调用中,它设置实体的键,而不是名为" key"的属性属性。