gpt4 book ai didi

python - 为什么admin.autodiscover()在使用admin时在Django中没有自动调用,为什么它被设计成显式调用?

转载 作者:太空狗 更新时间:2023-10-29 17:23:20 25 4
gpt4 key购买 nike

如果不将 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com