gpt4 book ai didi

python - STATICFILES_DIRS 设置使我的管理小部件覆盖消失

转载 作者:太空宇宙 更新时间:2023-11-03 20:08:33 25 4
gpt4 key购买 nike

我无法理解 Django 中如何处理静态文件。我已经通读了 Django 官方文档以及多个线程,包括这里的这个精彩的文档:

Differences between STATICFILES_DIR, STATIC_ROOT and MEDIA_ROOT

大多数人将 STATICFILES_DIRS 列表定义为路径列表,django 将在其中搜索除应用程序的静态文件夹之外的其他静态文件。

我明白这一点,但这与我在 admin.py 中覆盖的表单字段有什么关系?我已经在我的一些管理模型中将默认的 ManyToMany 表单覆盖为 FilteredSelectMultiple 小部件,如下所示:

from django.contrib.admin.widgets import FilteredSelectMultiple

formfield_overrides = {
models.ManyToManyField: {'widget': FilteredSelectMultiple("User Names", is_stacked=False)}
}

这工作正常并产生我想要的小部件覆盖:Functional Widget Screenshot

但是,当我在 settings.py 中定义 STATICFILES_DIRS 以包含我的根静态文件夹时,如下所示:

STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static/'),
)

它破坏了我的覆盖并默认返回原始的 ManyToMany 字段形式: Broken Widget Screenshot

我们没有在 settings.py 中定义 STATIC_ROOT,因为我们不打算使用收集静态功能。我们计划在根静态文件夹中保留/引用我们的静态文件。另外,在我们的 settings.py 中,我们有:

STATIC_URL = '/static/'

我不明白这些处理静态文件的设置如何干扰上面的 formfield_override 。我希望对此有一些见解,以便我能找到解决此问题的方法。

谢谢!

最佳答案

我找到了问题的原因。我错过了 Django 文档中解释 STATICFILES_FINDERS 的这一部分:STATICFILES_STORAGE Documentation

enter image description here

事实证明,我的生产服务器首先在我的外部根文件夹中查找静态文件,这些文件不是最新的。这解释了为什么我没有看到我的变化。我将重新配置处理静态文件的方式,以确保我的生产服务器看起来的外部根静态文件夹始终通过 collectstatic 功能

拥有最新的静态文件

关于python - STATICFILES_DIRS 设置使我的管理小部件覆盖消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58825381/

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