Move the actual loading of the serializer when it actually needed
This commit is contained in:
@@ -139,7 +139,7 @@ class_permissions(Document, [PERMISSION_DOCUMENT_DELETE,
|
|||||||
PERMISSION_DOCUMENT_VIEW,
|
PERMISSION_DOCUMENT_VIEW,
|
||||||
PERMISSION_HISTORY_VIEW])
|
PERMISSION_HISTORY_VIEW])
|
||||||
|
|
||||||
document_search = SearchModel('documents', 'Document', permission=PERMISSION_DOCUMENT_VIEW, serializer='documents.serializers.DocumentSerializer')
|
document_search = SearchModel('documents', 'Document', permission=PERMISSION_DOCUMENT_VIEW, serializer_string='documents.serializers.DocumentSerializer')
|
||||||
|
|
||||||
# TODO: move these to their respective apps
|
# TODO: move these to their respective apps
|
||||||
# Moving these to other apps cause an ImportError; circular import?
|
# Moving these to other apps cause an ImportError; circular import?
|
||||||
|
|||||||
@@ -17,21 +17,19 @@ logger = logging.getLogger(__name__)
|
|||||||
class SearchModel(object):
|
class SearchModel(object):
|
||||||
registry = {}
|
registry = {}
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def get_all(cls):
|
|
||||||
return cls.registry.values()
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get(cls, full_name):
|
def get(cls, full_name):
|
||||||
return cls.registry[full_name]
|
result = cls.registry[full_name]
|
||||||
|
result.serializer = load_backend(self.serializer_string)
|
||||||
|
return result
|
||||||
|
|
||||||
def __init__(self, app_label, model_name, serializer, label=None, permission=None):
|
def __init__(self, app_label, model_name, serializer_string, label=None, permission=None):
|
||||||
self.app_label = app_label
|
self.app_label = app_label
|
||||||
self.model_name = model_name
|
self.model_name = model_name
|
||||||
self.search_fields = {}
|
self.search_fields = {}
|
||||||
self.model = get_model(app_label, model_name)
|
self.model = get_model(app_label, model_name)
|
||||||
self.label = label or self.model._meta.verbose_name
|
self.label = label or self.model._meta.verbose_name
|
||||||
self.serializer = load_backend(serializer)
|
self.serializer_string = serializer_string
|
||||||
self.permission = permission
|
self.permission = permission
|
||||||
self.__class__.registry[self.get_full_name()] = self
|
self.__class__.registry[self.get_full_name()] = self
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user