Python 在哪里可以找到django.contrib.admin.ModelAdmin类源代码
我对阅读Python 在哪里可以找到django.contrib.admin.ModelAdmin类源代码,python,django,Python,Django,我对阅读django.contrib.auth.admin.UserAdmin的源代码感兴趣,并在中的django github repo中找到了它 但是它继承了django.contrib.admin.ModelAdmin,这个文件不能这么简单地定位,因为django.contrib.admin有\uu init\uuuuuu.py文件,该文件在内部使用该实用程序,我完全误解了它的工作原理 问题是:我怎么能猜到django.contrib.admin.ModelAdmin的源代码位于哪个文件中
django.contrib.auth.admin.UserAdmin
的源代码感兴趣,并在中的django github repo中找到了它
但是它继承了django.contrib.admin.ModelAdmin
,这个文件不能这么简单地定位,因为django.contrib.admin
有\uu init\uuuuuu.py
文件,该文件在内部使用该实用程序,我完全误解了它的工作原理
问题是:我怎么能猜到django.contrib.admin.ModelAdmin的源代码位于哪个文件中?打开一个shell(安装了ipython)并激活virtualenv
./manage.py shell
并导入模块
from django.contrib.admin import ModelAdmin
那就打字吧
ModelAdmin??
这可以应用于任何python模块
没有ipython
from django.contrib.admin import ModelAdmin
import inspect
inspect.getfile(ModelAdmin)
您可以在
options.py
模块中找到django.contrib.admin.ModelAdmin
类源代码。您如何知道他正在使用该django 1.11版本?\uuuu init\uuuuuuuuuuuuuuuuuuu
文件具有从options
文件导入的功能:您还可以使用该类的\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
属性inspect.getsourcefile(ModelAdmin)
是另一个选项。@AshwiniChaudhary,是的,你说得对inspect.getsourcefile
是我需要的。谢谢!(如果您将评论转换为答案,我会接受)如果他们不使用IPython怎么办?我添加了一个替代方案,但是,老实说,只需安装IPython即可。@lapinkoira,老实说,绝对没有必要用IPython扰乱工作环境,除非您正在阅读比安装IPython风险更大的生产源代码,我建议您在开发环境中使用它来学习python。除了??这是普通python shell所缺少的。它有一个非常直观的sintax,正如您所看到的,在普通python中,您必须导入inspect并搜索正确的函数。如果是这样,我建议安装django extensions
并使用shell\u plus
。