Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在哪里可以找到django.contrib.admin.ModelAdmin类源代码_Python_Django - Fatal编程技术网

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