Django3.2.6 LTS admin模板显示异常是否和自定义UserAdmin类有关?
问题原因
这不是Django官方的Bug,是你自定义的UserAdmin配置和Django 3.2版本的Admin新UI布局不兼容导致的。
Django 3.1及以上版本重构了Admin后台的默认UI,改用CSS网格布局实现排版,同时调整了多对多字段控件的样式适配规则。你代码中filter_horizontal = ()直接清空了父类BaseUserAdmin的默认配置,原本groups、user_permissions两个多对多字段默认会使用横向过滤的多选控件,适配新UI的宽度规则;改为原生多选框后,3.2版本没有针对原生多选框做对应布局适配,就会出现你截图中排版错乱的情况。
修复方案
- 保留多对多字段的横向过滤控件,不要清空
filter_horizontal配置:
# 替换原来的 filter_horizontal = () filter_horizontal = ('groups', 'user_permissions',)
- 如果你确实需要使用原生多选框,可以给自定义UserAdmin类添加自定义CSS,手动调整原生多选框的宽度适配布局。
- 额外排查:确认当前环境加载的是Django 3.2对应的Admin静态资源,开发环境下开启DEBUG后检查静态资源路由配置,生产环境确保执行过
python manage.py collectstatic同步最新静态文件,排除旧版本静态资源缓存导致的样式异常。
内容的提问来源于stack exchange,提问作者msln
相关产品推荐
相关产品推荐

