Store instances of SearchModel by their full_name in the class registry
This commit is contained in:
@@ -20,13 +20,20 @@ class SearchModel(object):
|
|||||||
def get_all(cls):
|
def get_all(cls):
|
||||||
return cls.registry.values()
|
return cls.registry.values()
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get(cls, full_name):
|
||||||
|
return cls.registry[full_name]
|
||||||
|
|
||||||
def __init__(self, app_label, model_name, label=None):
|
def __init__(self, app_label, model_name, label=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.__class__.registry[id(self)] = self
|
self.__class__.registry[self.get_full_name()] = self
|
||||||
|
|
||||||
|
def get_full_name(self):
|
||||||
|
return '%s.%s' % (self.app_label, self.model_name)
|
||||||
|
|
||||||
def get_all_search_fields(self):
|
def get_all_search_fields(self):
|
||||||
return self.search_fields.values()
|
return self.search_fields.values()
|
||||||
|
|||||||
Reference in New Issue
Block a user