【问题标题】:No access to models in admin panel with DEBUG=False使用 DEBUG=False 无法访问管理面板中的模型
【发布时间】:2012-09-28 15:29:42
【问题描述】:

我在访问我的 Django 应用程序中定义的模型时遇到了一些问题。当我在settings.py中有:

DEBUG = True
TEMPLATE_DEBUG = DEBUG

然后一切正常。如果我设置 DEBUG = False,那么在管理面板中,我会看到包含我的应用程序名称和注册模型的部分,但模型的名称不能正常点击(链接)。此外,我没有看到向我的注册模型添加/编辑对象的图标。 Auth、Flatpages 等其他标准应用程序看起来还不错。当我设置 DEBUG = True 时,一切正常。 有谁知道这个问题的原因是什么?

【问题讨论】:

    标签: django django-models django-admin


    【解决方案1】:

    好的,我找到了问题的原因。这是由于在管理面板中从具有模型定义的文件中注册我的模型引起的。当我将所有注册移至一个外部文件 admin.py 时,一切正常。

    【讨论】:

    • 感谢这让我走上了正轨。对我来说,我有一个 models.py 文件,它导入了我所有的子应用程序。我在 models.py 旁边创建了另一个名为 admin.py 的文件,并从这里导入了我所有的子应用管理文件。
    • 非常感谢,真的,感谢您的解决方案。我正在使用 Django 1.3 保留一个旧应用程序。当我设置 DEBUG = False 时,Django 管理员停止工作(各个管理页面的链接返回 404)。我在文档中搜索了几个小时,但我不明白为什么会出现这种行为。最后,阅读您的答案,我意识到出了什么问题:模型已在 models.py 中注册。现在我已将所有调用移至 admin.py 中的 admin.site.register() (故意创建的文件,它不存在于项目文件夹中)并且一切正常。非常感谢。
    猜你喜欢
    • 2017-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 2014-01-23
    相关资源
    最近更新 更多