if not (hasattr(value, '%s__func' % pre) or hasattr(value, '%s__unicode_cast' % pre) or hasattr(value, '%s__text_cast' % pre)): return False return True def serialize(self, value, **kwargs): # EPIC HACK # handles lazy model instances (which are proxy values that dont easily give you the actual function) pre = value.__class__.__name__[1:] if hasattr(value, '%s__func' % pre): value = getattr(value, '%s__func' % pre)(*getattr(value, '%s__args' % pre), **getattr(value, '%s__kw' % pre)) else: return unicode(value) return self.recurse(value, **kwargs) class QuerySetSerializer(Serializer): types = (QuerySet,) def serialize(self, value, **kwargs): qs_name = type(value).__name__ if value.model: return u'<%s: model=%s>' % (qs_name, value.model.__name__) return u'<%s: (Unbound)>' % (qs_name,) register(PromiseSerializer) register(QuerySetSerializer)
hasattr(value, '%s__text_cast' % pre)): return False return True def serialize(self, value, **kwargs): # EPIC HACK # handles lazy model instances (which are proxy values that dont easily give you the actual function) pre = value.__class__.__name__[1:] if hasattr(value, '%s__func' % pre): value = getattr(value, '%s__func' % pre)(*getattr(value, '%s__args' % pre), **getattr(value, '%s__kw' % pre)) else: return unicode(value) return self.recurse(value, **kwargs) register(PromiseSerializer) class HttpRequestSerializer(Serializer): types = (HttpRequest,) def serialize(self, value, **kwargs): return u'<%s at 0x%s>' % (type(value).__name__, id(value)) register(HttpRequestSerializer) if getattr(settings, 'DATABASES', None): from django.db.models.query import QuerySet class QuerySetSerializer(Serializer):
hasattr(value, '%s__text_cast' % pre)): return False return True def serialize(self, value, **kwargs): # EPIC HACK # handles lazy model instances (which are proxy values that dont easily give you the actual function) pre = value.__class__.__name__[1:] if hasattr(value, '%s__func' % pre): value = getattr(value, '%s__func' % pre)(*getattr(value, '%s__args' % pre), **getattr(value, '%s__kw' % pre)) else: return self.recurse(six.text_type(value)) return self.recurse(value, **kwargs) register(PromiseSerializer) class HttpRequestSerializer(Serializer): types = (HttpRequest,) def serialize(self, value, **kwargs): return '<%s at 0x%s>' % (type(value).__name__, id(value)) register(HttpRequestSerializer) if getattr(settings, 'DATABASES', None): from django.db.models.query import QuerySet class QuerySetSerializer(Serializer):
pre = value.__class__.__name__[1:] if not (hasattr(value, '%s__func' % pre) or hasattr(value, '%s__unicode_cast' % pre)): return False return True def serialize(self, value): # EPIC HACK # handles lazy model instances (which are proxy values that dont easily give you the actual function) pre = value.__class__.__name__[1:] if hasattr(value, '%s__func' % pre): value = getattr(value, '%s__func' % pre)(*getattr(value, '%s__args' % pre), **getattr(value, '%s__kw' % pre)) else: return unicode(value) return self.recurse(value) class QuerySetSerializer(Serializer): types = (QuerySet,) def serialize(self, value): qs_name = type(value).__name__ if value.model: return u'<%s: model=%s>' % (qs_name, value.model.__name__) return u'<%s: (Unbound)>' % (qs_name,) register(PromiseSerializer) register(QuerySetSerializer)