Django管理模板覆盖在生产环境中无法正常工作。

6

就像这个问题一样,我的管理界面覆盖在生产环境中无法工作,但在开发环境中可以(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',)

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

同样,在我的开发环境中(使用PyCharm),但不在我的生产环境中工作。有什么想法吗?我对这个问题感到非常困惑。


你重启了生产环境吗? - jpic
是的 - Apache 弹回了... - machomeautoguy
1个回答

16

回答:在我的生产设备上,显然它不喜欢“Customer”和“Transaction”,尽管这是模型的确切名称 - 它需要“customer”和“transaction”。


3
如果可以的话,我会给你更多的投票。我不知道为什么在开发中使用大写字母没问题,但在生产环境中却不行。 - wilbbe01
4
如果你正在Windows上进行开发,并在Unix变体(如Linux)上部署,那么这可能就是原因——Windows目录和文件名不区分大小写,但Unix则区分大小写。只是一个想法。 - Brendan Quinn
3
在区分大小写的 Mac OS 系统上开发,并在 Linux 上部署,因此这不是问题的原因。 - machomeautoguy
2
这里也有同样的问题。即使在本地的Docker容器上运行Django,然后部署在kube上也会发生这种情况。我想这种差异可能是由于挂载的卷所解释的,但这确实令人惊讶。 - agconti
非常感谢,你可能为我节省了数小时的时间。 - David

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接