Fix non-threadsafe failure in serializer - now using thread local serializer instance.

This commit is contained in:
Tyson Clugg 2015-04-23 09:41:49 +10:00
parent 82ca99b142
commit 5768d1ebcf

View file

@ -1,15 +1,17 @@
"""Django DDP utils for DDP messaging."""
import collections
from dddp import THREAD_LOCAL as this
from django.core.serializers import get_serializer
_SERIALIZER = None
def serializer_factory():
"""Make a new DDP serializer."""
return get_serializer('ddp')()
def obj_change_as_msg(obj, msg):
"""Generate a DDP msg for obj with specified msg type."""
global _SERIALIZER
if _SERIALIZER is None:
_SERIALIZER = get_serializer('ddp')()
data = _SERIALIZER.serialize([obj])[0]
serializer = this.get('serializer', serializer_factory)
data = serializer.serialize([obj])[0]
name = data['model']
# cast ID as string