Django报PosixPath不可迭代错误 管理后台CSS不加载模型未显示
问题1:运行报错「TypeError: argument of type 'PosixPath' is not iterable」
- 触发原因:你使用的Django版本低于3.1,不支持
Path类型作为SQLite数据库路径配置 - 解决方法:
- 打开项目
settings.py文件,找到DATABASES配置项 - 将
NAME参数的取值用str()包裹,示例修改:
也可以直接将Django升级到3.1及以上版本,原生支持# 修改前 'NAME': BASE_DIR / 'db.sqlite3', # 修改后 'NAME': str(BASE_DIR / 'db.sqlite3'),Path类型路径配置。 - 打开项目
问题2:管理后台CSS无法加载
- 开发环境解决步骤:
- 检查
settings.py中INSTALLED_APPS已添加django.contrib.staticfiles - 检查
settings.py已配置STATIC_URL = '/static/' - 项目根
urls.py中添加静态文件路由配置:
from django.conf import settings from django.conf.urls.static import static urlpatterns = [ # 原有路由配置 ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) - 检查
- 生产环境解决步骤:
- 运行
python manage.py collectstatic收集所有静态文件到指定目录 - 配置部署用的Web服务器(Nginx/Apache等),将
/static/路径请求指向收集后的静态文件目录。
- 运行
问题3:新增模型未在管理后台展示
你提交的models.py本身存在多处语法错误,先修复模型代码问题:
- 头部缺少必要导入:顶部添加两行导入
from django.urls import reverse from django.contrib.auth.models import User
- 修正
Product类的缩进错误:Meta类、__str__方法目前是全局层级,需要缩进为Product的内部成员 - 修正拼写错误:
verbose_name_pliral改为verbose_name_plural - 修正排序配置错误:
ordering = ('-Created', )改为ordering = ('-created', ),字段名大小写和定义保持一致
修复完成后执行以下操作:
- 确认你的应用已添加到
settings.py的INSTALLED_APPS列表中 - 在应用目录下的
admin.py中注册模型:
from django.contrib import admin from .models import Category, Product admin.site.register(Category) admin.site.register(Product)
- 执行模型迁移命令:
python manage.py makemigrations python manage.py migrate
重启服务后即可在管理后台看到对应模型。
内容的提问来源于stack exchange,提问作者subas kandel
相关产品推荐
相关产品推荐

