DeReference is now used in a thread safe manner
No global / module instance is needed Fixes #399
This commit is contained in:
parent
2a391f0f16
commit
1d7ea71c0d
@ -234,8 +234,8 @@ class ComplexBaseField(BaseField):
|
|||||||
return self
|
return self
|
||||||
|
|
||||||
if not self._dereference and instance._initialised:
|
if not self._dereference and instance._initialised:
|
||||||
from dereference import dereference
|
from dereference import DeReference
|
||||||
self._dereference = dereference # Cached
|
self._dereference = DeReference() # Cached
|
||||||
instance._data[self.name] = self._dereference(
|
instance._data[self.name] = self._dereference(
|
||||||
instance._data.get(self.name), max_depth=1, instance=instance,
|
instance._data.get(self.name), max_depth=1, instance=instance,
|
||||||
name=self.name
|
name=self.name
|
||||||
|
@ -186,5 +186,3 @@ class DeReference(object):
|
|||||||
return BaseDict(data, instance, name)
|
return BaseDict(data, instance, name)
|
||||||
depth += 1
|
depth += 1
|
||||||
return data
|
return data
|
||||||
|
|
||||||
dereference = DeReference()
|
|
||||||
|
@ -277,8 +277,8 @@ class Document(BaseDocument):
|
|||||||
|
|
||||||
.. versionadded:: 0.5
|
.. versionadded:: 0.5
|
||||||
"""
|
"""
|
||||||
from dereference import dereference
|
from dereference import DeReference
|
||||||
self._data = dereference(self._data, max_depth)
|
self._data = DeReference()(self._data, max_depth)
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def reload(self, max_depth=1):
|
def reload(self, max_depth=1):
|
||||||
|
@ -1095,8 +1095,8 @@ class QuerySet(object):
|
|||||||
.. versionadded:: 0.4
|
.. versionadded:: 0.4
|
||||||
.. versionchanged:: 0.5 - Fixed handling references
|
.. versionchanged:: 0.5 - Fixed handling references
|
||||||
"""
|
"""
|
||||||
from dereference import dereference
|
from dereference import DeReference
|
||||||
return dereference(self._cursor.distinct(field), 1)
|
return DeReference()(self._cursor.distinct(field), 1)
|
||||||
|
|
||||||
def only(self, *fields):
|
def only(self, *fields):
|
||||||
"""Load only a subset of this document's fields. ::
|
"""Load only a subset of this document's fields. ::
|
||||||
@ -1747,10 +1747,10 @@ class QuerySet(object):
|
|||||||
|
|
||||||
.. versionadded:: 0.5
|
.. versionadded:: 0.5
|
||||||
"""
|
"""
|
||||||
from dereference import dereference
|
from dereference import DeReference
|
||||||
# Make select related work the same for querysets
|
# Make select related work the same for querysets
|
||||||
max_depth += 1
|
max_depth += 1
|
||||||
return dereference(self, max_depth=max_depth)
|
return DeReference()(self, max_depth=max_depth)
|
||||||
|
|
||||||
|
|
||||||
class QuerySetManager(object):
|
class QuerySetManager(object):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user