2016-12-16 110 views
1

我嘗試繼承財產NDB如下面的例子是否可以從屬性中獲取模型名稱和字段名稱?

class FileStorageProperty(ndb.StringProperty): 

    def __init__(self, **kwds): 
     super(FileStorageProperty, self).__init__(**kwds) 

    def _to_base_type(self, value): 
     # Do somethings to get field name and model name 
     return None 

    def _from_base_type(self, value): 
     return None 

這樣的方式使用FileStorageProperty是出頭像

class A(ndb.Model): 
    file = FileStorageProperty() 

我希望做的是,FileStorageProperty類如內。 init,_to_base_type,_from_base_type我想知道模型名稱('A')和字段名稱('文件')。

謝謝你的任何建議。

+0

FileStorage Class在哪裏?在你的例子中只有FileStorageProperty類,不清楚你想要什麼:) – linpingta

+0

爲我的錯誤道歉,我的意思是在FileStorageProperty類中。我只是編輯問題以便更好地理解。 – Chetchaiyan

+0

您不能..因爲您正在爲另一個類A內的FileStorageProperty類創建對象,那麼如何讓A類在FileStorageProperty類中可用。雙向的方式是不可能的。 –

回答

0

做到這一點的唯一方法是將信息作爲參數傳遞。您可能必須將該類的名稱和該字段的名稱作爲字符串傳遞,因爲我懷疑該類在創建該字段時不存在。

class FileStorageProperty(ndb.StringProperty): 

    def __init__(self, model, field, **kwds): 
     self._model = model 
     self._field = field 
     super(FileStorageProperty, self).__init__(**kwds) 

class A(ndb.Model): 
    file = FileStorageProperty("A", "file")