是否可以从属性中获取模型名称和字段名称?

时间:2016-12-16 04:27:35

标签: python google-app-engine

我尝试将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')和字段名称('file')。

感谢您的任何建议。

1 个答案:

答案 0 :(得分: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")