我已经学习了几个月的python,并开始修改Django . 在发布之前,我读了github上自动生成的'admin.py'代码,并用谷歌搜索了这个问题 . 看来我的问题有点具体,而且坦率地说,我对此具体阅读非常困惑 . 因此,我希望这可以为这个美好的社区增添 Value . 题:
将模型连接到管理页面时,在admin.py中,首先导入admin:
来自django.contrib import admin
在此之后,您导入模型 . 然后,你应该通过以下方式连接你的模型:
admin.site.register(MODEL)
我不明白的是'site.register'是什么 . 该行以'admin'开头的事实 . 很有意义,因为您指定了以下导入(例如'admin.function'或'admin.class')的来源 . 如果它只是'admin.somefunctionfromadmin'我会完全理解这一点 . 现在,相反,我对'sites.register'是什么感到困惑 . 'sites'是一个模块,一个文件,并从该模块中“注册”一个函数吗?如果是这样,那么“管理员”是什么?一套?
我在整个Django中都看到了与这些类似的行,感觉有点困惑 .
谢谢!
1 回答
admin.site
是AdminSite类的默认实例 . 在django.contrib.admin.sites
中是instantiated .然后在
django/contrib/admin/__init__.py
中imported . 当你完成from django.contrib import admin
时,这使它可用作admin.site
.当您调用
admin.site.register(Model)
时,您正在调用此管理站点实例的register
方法 .