使用django-taggit时出现add_lazy_relation导入错误求助
解决Django+taggit导入
add_lazy_relation错误的方案 你的问题核心是版本不兼容:你使用的django-taggit==0.17.1是针对旧版Django(1.x系列)开发的,而Django 2.2已经移除了django.db.models.fields.related下的add_lazy_relation函数,所以运行makemigrations时会触发导入错误。
快速解决方案:升级django-taggit到兼容版本
django-taggit的1.x及以上版本完全支持Django 2.2 LTS,执行以下命令升级:
pip install --upgrade django-taggit>=1.2.0
(推荐安装1.5.0及以上版本,它兼容Django 2.2到4.x的多个版本,后续扩展性更好)
验证步骤
- 升级完成后,重新运行迁移命令:
python manage.py makemigrations python manage.py migrate
- 你的现有代码不需要任何修改:
from taggit.managers import TaggableManager class Post(models.Model): tags = TaggableManager()
这段代码在兼容版本的taggit中是完全有效的。
不推荐的备选方案(不建议使用)
如果出于特殊原因不能升级taggit,你只能降级Django到1.x系列(比如Django 1.11 LTS),但这会带来安全和功能上的隐患——Django 1.x已经停止维护,不推荐在生产环境使用。
内容的提问来源于stack exchange,提问作者quarkpol
相关产品推荐
相关产品推荐

