通过 importlib模块 反射字符串的对象
Python 3.5.2 (default, Nov 17 2016, 17:05:23) [GCC 5.4.0 20160609] on linux Django 1.10.4 >>> from crm import models #使用importlib模块的import_module方法就可以实现动态的导入 >>> import importlib >>> models.Course._meta <Options for Course> >>> models.Course._meta.verbose_name 'course' >>> models.Course._meta.model_name 'course' >>> models.Customer._meta.verbose_name '客户信息' >>> >>> >>> models.Customer._meta <Options for Customer> >>> models.Customer <class 'crm.models.Customer'> >>> m = models.Customer >>> importlib.import_module('crm') <module 'crm' from '/home/ligq/python/django/mycrm/crm/__init__.py'> >>> importlib.import_module('crm.models') <module 'crm.models' from '/home/ligq/python/django/mycrm/crm/models.py'> #反射出来字符串'crm.models' 的对象<class 'crm.models.UserProfile'> >>> mc = importlib.import_module('crm.models') >>> mc.UserProfile <class 'crm.models.UserProfile'> #这时候就可以操作这个对象了 >>> mc.UserProfile.objects.all() <QuerySet [<UserProfile: 销售>, <UserProfile: 学生>, <UserProfile: 管理员>]>