wagtail-localize与django-comments-xtd冲突,创建Locale时报错
问题描述
按照wagtail-localize教程配置第二个Locale时,点击保存出现如下错误:
DoesNotExist at /admin/locales/new/ XtdComment matching query does not exist. Request Method: POST Request URL: http://127.0.0.1:8000/admin/locales/new/ Django Version: 4.2.2 Exception Type: DoesNotExist Exception Value: XtdComment matching query does not exist.
不基于默认Locale同步时可成功创建新Locale,但编辑该Locale启用同步时仍会触发相同错误。
使用的包版本:
Django>=4.2,<4.3 wagtail>=5.0.2,<5.1 django-comments-xtd==2.9.10 wagtail-localize==1.5.1
需求:彻底阻止django-comments-xtd介入Locale创建/编辑的同步流程。
解决方案
排除Locale模型的评论信号
django-comments-xtd通常通过信号绑定到模型,找到项目中注册信号的代码,将wagtail_localize.models.Locale排除在外。若使用默认信号注册,可在项目apps.py的ready方法中,解除Locale模型与评论信号的绑定,或直接阻止信号对该模型生效。添加模型排除配置
在settings.py中配置COMMENTS_XTD_EXCLUDE_MODEL,将Locale模型加入排除列表:COMMENTS_XTD_EXCLUDE_MODEL = [ 'wagtail_localize.Locale', ]该配置会让django-comments-xtd忽略指定模型的评论处理逻辑。
手动控制信号注册
若上述方法无效,可禁用django-comments-xtd的全局默认信号,在项目apps.py中手动为需要评论功能的模型绑定信号,完全跳过Locale模型。临时卸载排查
临时注释INSTALLED_APPS中的django_comments_xtd,完成Locale配置后再重新启用,确认是否为该包引发的冲突,并进一步排查问题点。
内容的提问来源于stack exchange,提问作者autosnake
相关产品推荐
相关产品推荐

