@@ -786,18 +786,25 @@ class GridFSProxy(object):
|
||||
.. versionchanged:: 0.6 - added collection name param
|
||||
"""
|
||||
|
||||
_fs = None
|
||||
|
||||
def __init__(self, grid_id=None, key=None,
|
||||
instance=None,
|
||||
db_alias=DEFAULT_CONNECTION_NAME,
|
||||
collection_name='fs'):
|
||||
self.fs = gridfs.GridFS(get_db(db_alias), collection_name) # Filesystem instance
|
||||
self.newfile = None # Used for partial writes
|
||||
self.grid_id = grid_id # Store GridFS id for file
|
||||
self.gridout = None
|
||||
self.grid_id = grid_id # Store GridFS id for file
|
||||
self.key = key
|
||||
self.instance = instance
|
||||
self.db_alias = db_alias
|
||||
self.collection_name = collection_name
|
||||
self.newfile = None # Used for partial writes
|
||||
self.gridout = None
|
||||
|
||||
def __getattr__(self, name):
|
||||
attrs = ('_fs', 'grid_id', 'key', 'instance', 'db_alias',
|
||||
'collection_name', 'newfile', 'gridout')
|
||||
if name in attrs:
|
||||
return self.__getattribute__(name)
|
||||
obj = self.get()
|
||||
if name in dir(obj):
|
||||
return getattr(obj, name)
|
||||
@@ -809,6 +816,17 @@ class GridFSProxy(object):
|
||||
def __nonzero__(self):
|
||||
return bool(self.grid_id)
|
||||
|
||||
def __getstate__(self):
|
||||
self_dict = self.__dict__
|
||||
self_dict['_fs'] = None
|
||||
return self_dict
|
||||
|
||||
@property
|
||||
def fs(self):
|
||||
if not self._fs:
|
||||
self._fs = gridfs.GridFS(get_db(self.db_alias), self.collection_name)
|
||||
return self._fs
|
||||
|
||||
def get(self, id=None):
|
||||
if id:
|
||||
self.grid_id = id
|
||||
|
||||
Reference in New Issue
Block a user