You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django集成django-hvad启动报错,请求排查模型翻译问题

解决django-hvad集成时的_clone() got an unexpected keyword argument 'shared_model'错误

这个错误不是你的模型/序列化器/视图代码写错了,核心原因是django-hvad版本和你当前使用的Django版本不兼容。

问题根源

Django在2.0+版本中修改了QuerySet._clone()方法的参数签名,而旧版本的django-hvad没有适配这个变化,导致调用时传入了shared_model这个不被支持的参数,触发TypeError。

解决方案

  1. 检查版本兼容性
    先确认你当前的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的最新稳定版(或开发版)
  2. 升级django-hvad到兼容版本
    运行命令升级到对应版本:

    # 直接升级到最新稳定版
    pip install --upgrade django-hvad
    # 或者指定兼容的版本号,比如适配Django3.x的1.10.0
    pip install django-hvad==1.10.0
    
  3. 可选:优化你的代码(非错误原因,只是规范建议)

    • 模型字段名遵循PEP8规范,把companyType改成company_type
    • 你的Opponent.save()方法没有额外逻辑,可以直接删除,因为只是调用父类的save方法,完全没必要重写

验证

升级完成后,重新运行:

python manage.py runserver

应该就能正常启动服务了。

内容的提问来源于stack exchange,提问作者Philippe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:37:20