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
|
||||
|
||||
if not self._dereference and instance._initialised:
|
||||
from dereference import dereference
|
||||
self._dereference = dereference # Cached
|
||||
from dereference import DeReference
|
||||
self._dereference = DeReference() # Cached
|
||||
instance._data[self.name] = self._dereference(
|
||||
instance._data.get(self.name), max_depth=1, instance=instance,
|
||||
name=self.name
|
||||
|
@ -186,5 +186,3 @@ class DeReference(object):
|
||||
return BaseDict(data, instance, name)
|
||||
depth += 1
|
||||
return data
|
||||
|
||||
dereference = DeReference()
|
||||
|
@ -277,8 +277,8 @@ class Document(BaseDocument):
|
||||
|
||||
.. versionadded:: 0.5
|
||||
"""
|
||||
from dereference import dereference
|
||||
self._data = dereference(self._data, max_depth)
|
||||
from dereference import DeReference
|
||||
self._data = DeReference()(self._data, max_depth)
|
||||
return self
|
||||
|
||||
def reload(self, max_depth=1):
|
||||
|
@ -1095,8 +1095,8 @@ class QuerySet(object):
|
||||
.. versionadded:: 0.4
|
||||
.. versionchanged:: 0.5 - Fixed handling references
|
||||
"""
|
||||
from dereference import dereference
|
||||
return dereference(self._cursor.distinct(field), 1)
|
||||
from dereference import DeReference
|
||||
return DeReference()(self._cursor.distinct(field), 1)
|
||||
|
||||
def only(self, *fields):
|
||||
"""Load only a subset of this document's fields. ::
|
||||
@ -1747,10 +1747,10 @@ class QuerySet(object):
|
||||
|
||||
.. versionadded:: 0.5
|
||||
"""
|
||||
from dereference import dereference
|
||||
from dereference import DeReference
|
||||
# Make select related work the same for querysets
|
||||
max_depth += 1
|
||||
return dereference(self, max_depth=max_depth)
|
||||
return DeReference()(self, max_depth=max_depth)
|
||||
|
||||
|
||||
class QuerySetManager(object):
|
||||
|
Loading…
x
Reference in New Issue
Block a user