【问题标题】:Django admin template overrides not working in production environmentDjango 管理模板覆盖在生产环境中不起作用
【发布时间】:2013-01-27 05:48:57
【问题描述】:

this question 一样,我的管理员覆盖在我的生产环境中不起作用,但它们在我的开发环境中(相同的 django 版本)。我已经尝试在 settings.py 中重新排序 INSTALLED_APPS 元组而没有任何变化(是上面链接的问题的答案)。以下是我构建项目的方式:

/WebDJ/ # project dir
    +devices # unrelated app, but it uses templates (see below)
    +sales
        __init__.py
        admin.py
        models.py  # has Customer and Transaction model classes
    +templates
        +admin
            +sales
                +Customer
                    change_form.html
                +Transaction
                    change_form.html
        +devices # lots of templates under here that work fine
        404.html
        500.html

还有:

TEMPLATE_DIRS = ('/WebDJ/templates',)

在 settings.py 中设置。设备应用程序中的模板很好。没有加载的是管理目录中的覆盖 - 因此客户和交易的更改表单添加了一些额外的东西(覆盖“after_field_sets”块)。

同样,它适用于我的开发环境(使用 PyCharm),但不适用于我的生产环境。有任何想法吗?我真的被这个难住了。

【问题讨论】:

  • 你重启生产环境了吗?
  • 是的 - 退回 apache...

标签: django django-templates overriding admin


【解决方案1】:

回答:在我的生产机器上,它显然不喜欢“客户”和“交易”,尽管这是模型的确切名称 - 它需要“客户”和“交易”。

【讨论】:

  • 如果可以的话,我会给你更多的选票。我想知道为什么大写在开发中有效,但在生产中无效。
  • 如果您在 Windows 上开发并部署到 Unix 变体(例如 Linux),那就可以解释了 - Windows 目录和文件名不区分大小写,但 Unix 是。只是一个想法。
  • 在区分大小写的 Mac OS 上开发安装并在 linux 上进行部署所以不是这样。
  • 这里有同样的问题。这甚至发生在在本地 docker 容器上运行 django 和部署到 kube 之间。我想这种差异可以用附卷来解释,但它肯定令人惊讶。
  • 非常感谢,您可能挽救了我的生命