- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
如果不将 admin.autodiscover()
放入 urls.py,管理页面会显示您无权编辑任何内容
( See SO thread )。
为什么会这样?如果您总是需要添加 admin.autodiscover()
以使用管理员编辑信息,即使您拥有 super 用户名和安全密码,为什么 Django 开发人员不触发 admin.autodiscover( )
自动?
最佳答案
在 Django 1.7 之前,建议将 admin.autodiscover()
调用放在 urls.py 中。这允许它在必要时被禁用。要求 admin.autodiscover()
而不是自动调用它是 Python 哲学的一个例子 'Explicit is better than implicit'在行动中。请记住,django.contrib.admin
应用程序是可选的,它并非安装在每个站点上,因此始终运行自动发现没有意义。
大多数时候自动发现工作得很好。但是,如果您需要更多控制权,则可以改为手动导入特定应用程序的管理文件。例如,您可能想要注册 multiple admin sites每个都有不同的应用程序。
应用加载为 refactored在 Django 1.7 中。 autodiscover()
已移至管理应用的默认应用配置。这意味着自动发现现在在加载管理应用程序时运行,并且无需将 admin.autodiscover()
添加到您的 urls.py。如果您不想自动发现,现在可以使用 SimpleAdminConfig
禁用它。相反。
关于python - 为什么admin.autodiscover()在使用admin时在Django中没有自动调用,为什么它被设计成显式调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12807220/
我是一名优秀的程序员,十分优秀!