Django使用dumpdata排除admin.logentry仍被导出问题求助
你遇到的问题可从以下几个维度排查解决
- Django版本兼容问题:Django 1.9及以上版本才支持
--exclude=app.Model的等号分隔写法,1.8及更早版本仅支持空格分隔的--exclude app.Model格式,旧版本对等于号参数的解析存在缺陷,会导致排除规则不生效。 - 模型匹配路径不全:如果你的项目中存在自定义的
logentry模型,或者admin应用不是默认的django.contrib.admin路径,仅写admin.logentry可能会匹配错误或者漏匹配默认的管理员日志模型,建议写全路径:--exclude=django.contrib.admin.logentry。 - 参数顺序错误:如果你在dumpdata命令中明确指定了要导出的应用/模型列表,
--exclude参数必须放在导出列表的后面,否则后续指定的导出对象会覆盖前面的排除规则。比如错误写法python manage.py dumpdata --exclude=admin.logentry auth admin,正确写法应为python manage.py dumpdata auth admin --exclude=admin.logentry。 - 旧文件残留问题:执行命令前先删除历史导出的JSON文件,避免本地旧文件未被覆盖,导致你误以为本次导出还包含排除的内容。
推荐的可兼容多场景的执行命令
# 适配新旧Django版本的写法 python manage.py dumpdata --exclude admin.logentry # 路径全匹配避免匹配错误的写法 python manage.py dumpdata --exclude=django.contrib.admin.logentry
内容的提问来源于stack exchange,提问作者Edgar Navasardyan
相关产品推荐
相关产品推荐

