gpt4 book ai didi

python - Django 1.10 : extend/override admin css

转载 作者:行者123 更新时间:2023-11-28 05:16:12 24 4
gpt4 key购买 nike

我想通过减少 contrib/admin/static/admin/css/base.css 的 min-height 属性来覆盖 select-multiple 小部件的 css 定义。但是,我认为我的 css 没有加载。我使用自定义管理表单,并在此表单以及相应的 ModelAdmin 中定义了 Media 子类:

    class Media:
css = {
'all': ('/css/admin widgets.css',)
}

文件本身位于 myapp/static/css/admin widgets.css 并包含:

    select[multiple] {
min-height: 65px;
}

settings.py中,我定义了

    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATICFILES_DIRS = [os.path.join(BASE_DIR, "myapp", "static")]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static'

我运行了 manage.py collectstatic,它在元素的静态子目录中收集了所有管理文件和我自己的 css 文件。我还按照 here 中的说明扩展了 urls.py , 但小部件仍以 base.css 中定义的 150px 最小高度呈现。感谢您的帮助。

编辑:我实际上在 django.contrib.admin.TabularInline 中使用表单。我也只是尝试将 Media-subclass 添加到此内联 - 无济于事。

最佳答案

我自己找到了解决方案。它确实只有一个字符,但不是 Jonas 指出的文件名中的空格(我在 Windows 文件系统上,也许在 linux 上有所不同)。相反,它是 Media 类中 URL 的前导斜线。而不是:

    class Media:
css = {
'all': ('/css/admin widgets.css',)
}

必须是

    class Media:
css = {
'all': ('css/admin widgets.css',)
}

否则 Django 直接在元素的根目录中查找 css/admin widgets.css 而不是静态子目录 static/css/admin.widgets.css

此外,Media 子类是否直接驻留在 Admin、Inline 或 Form 中似乎无关紧要。它在任何情况下都有效。

还有一个提示:始终在使用 css 或 js 进行测试之前清除浏览器缓存。我已经掉过多少次同一个坑了? -.-

编辑:已经有一个answer描述了如何覆盖管理员。 Django 2.0 旧但仍然正确

关于python - Django 1.10 : extend/override admin css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39301791/

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