| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- # coding=utf-8
- """
- @project: MaxKB
- @Author:虎虎
- @file: database_model_manage.py
- @date:2025/4/15 11:06
- @desc:
- """
- from importlib import import_module
- from django.conf import settings
- def new_instance_by_class_path(class_path: str):
- """
- 根据class_path 创建实例
- """
- parts = class_path.rpartition('.')
- package_path = parts[0]
- class_name = parts[2]
- module = import_module(package_path)
- HandlerClass = getattr(module, class_name)
- return HandlerClass()
- class DatabaseModelManage:
- """
- 模型字典
- """
- model_dict = {}
- @staticmethod
- def get_model(model_name):
- """
- 根据模型
- """
- return DatabaseModelManage.model_dict.get(model_name)
- @staticmethod
- def init():
- handles = [new_instance_by_class_path(class_path) for class_path in
- (settings.MODEL_HANDLES if hasattr(settings, 'MODEL_HANDLES') else [])]
- for h in handles:
- model_dict = h.get_model_dict()
- DatabaseModelManage.model_dict = {**DatabaseModelManage.model_dict, **model_dict}
|