我在哪里可以找到“admin.site.urls”的源文件?
Posted
技术标签:
【中文标题】我在哪里可以找到“admin.site.urls”的源文件?【英文标题】:where can i find the source file of 'admin.site.urls'? 【发布时间】:2013-11-24 00:48:18 【问题描述】:在我的 urls.py 中,我有一行代码 ('include(admin.site.urls)。但是我在 python 的安装目录中找不到源文件,例如 ..\site-packages\django\ contrib\admin 他们在哪里?
【问题讨论】:
【参考方案1】:在python中,可以从包的__init__.py
中加载模块;它不需要是同一目录中的文件。
如果您查看django/contrib/admin/__init__.py
,您将看到:
from django.contrib.admin.sites import AdminSite, site
那么,如果你查看django/contrib/admin/sites.py
,你会看到:
site = AdminSite()
(在底部)
def get_urls(self): 从 django.conf.urls 导入模式,url,包括 如果设置。调试: self.check_dependencies() def wrap(view, cacheable=False): def 包装器(*args,**kwargs): return self.admin_view(view, cacheable)(*args, **kwargs) 返回 update_wrapper(包装器,视图) # 管理站点范围的视图。 urlpatterns = 模式('', 网址(r'^$', 换行(self.index), 名称='索引'), url(r'^注销/$', 换行(self.logout), 名称='注销'), url(r'^password_change/$', wrap(self.password_change, cacheable=True), name='password_change'), url(r'^password_change/done/$', wrap(self.password_change_done, cacheable=True), name='password_change_done'), 网址(r'^jsi18n/$', wrap(self.i18n_javascript, cacheable=True), 名称='jsi18n'), url(r'^r/(?P\d+)/(?P.+)/$', 换行(contenttype_views.shortcut), 名称='view_on_site'), 网址(r'^(?P\w+)/$', 换行(self.app_index), 名称='app_list') ) # 添加每个模型的视图。 对于模型,model_admin 在 Six.iteritems(self._registry) 中: urlpatterns += 模式('', url(r'^%s/%s/' % (model._meta.app_label, model._meta.module_name), 包括(model_admin.urls)) ) 返回 url 模式 @财产 默认网址(自我): 返回 self.get_urls()、self.app_name、self.name
注意:url 映射到 get_urls()
【讨论】:
以上是关于我在哪里可以找到“admin.site.urls”的源文件?的主要内容,如果未能解决你的问题,请参考以下文章
使用 include('admin.site.urls') 时出错:不支持将 3 元组传递给 include()