from django.contrib import admin
- 这个字面意思是从django.contrib中导入admin,单纯理解应该是从django下面contrib这个包中导入admin模块。
- 找到django文件的安装位置C:\Users\XXX\AppData\Local\Programs\Python\Python39\Lib\site-packages\django\contrib\admin,发现admin是个包
- 疑问来了既然是个包为何下面没有admin模块?而从路径看admin也是一个包,既然是包应该是包后面带模块名,然后才能用类名来引用。
- 经过研究发现,admin包下面的__init__初始化函数中,直接从options.py模块文件中导入了ModelAdmin这个类,所以才实现了表面上看admin是个包,而其后面可以直接引用options类下面的ModelAdmin类。
- 如果需要看ModelAdmin的详细内容请查看options.py搜索ModelAdmin即可查看,包括基类BaseModelAdmin