Django集成django-hvad启动报错,请求排查模型翻译问题
这个错误不是你的模型/序列化器/视图代码写错了,核心原因是django-hvad版本和你当前使用的Django版本不兼容。
问题根源
Django在2.0+版本中修改了QuerySet._clone()方法的参数签名,而旧版本的django-hvad没有适配这个变化,导致调用时传入了shared_model这个不被支持的参数,触发TypeError。
解决方案
检查版本兼容性
先确认你当前的Django和django-hvad版本:pip show django pip show django-hvad版本对应参考:
- Django 2.0-2.2 → 需要django-hvad ≥1.9
- Django 3.x → 需要django-hvad ≥1.10
- Django 4.x → 需要django-hvad的最新稳定版(或开发版)
升级django-hvad到兼容版本
运行命令升级到对应版本:# 直接升级到最新稳定版 pip install --upgrade django-hvad # 或者指定兼容的版本号,比如适配Django3.x的1.10.0 pip install django-hvad==1.10.0可选:优化你的代码(非错误原因,只是规范建议)
- 模型字段名遵循PEP8规范,把
companyType改成company_type - 你的
Opponent.save()方法没有额外逻辑,可以直接删除,因为只是调用父类的save方法,完全没必要重写
- 模型字段名遵循PEP8规范,把
验证
升级完成后,重新运行:
python manage.py runserver
应该就能正常启动服务了。
内容的提问来源于stack exchange,提问作者Philippe
相关产品推荐
相关产品推荐

