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

如何在Django CMS中移除插件?移除FAQPlugin遇KeyError问题

解决Django CMS移除FAQPlugin后出现KeyError的问题

问题原因

即便页面中已看不到该插件,数据库内仍可能存在残留的FAQPlugin实例记录——比如草稿页面、历史版本,或是cmsplugin表中未清理的关联数据。Django CMS加载页面时会尝试匹配已注册的插件类,找不到对应类就会抛出KeyError。

解决步骤

1. 清理数据库中的插件记录

  • 先查询cmsplugin表是否存在FAQPlugin相关记录:
    SELECT * FROM cmsplugin WHERE plugin_type = 'FAQPlugin';
    
  • 若存在,直接删除这些记录:
    DELETE FROM cmsplugin WHERE plugin_type = 'FAQPlugin';
    
  • 若不再需要FAQ模型数据,可同步清理关联表(替换your_app_faq为实际数据表名):
    DELETE FROM your_app_faq WHERE id NOT IN (SELECT object_id FROM cmsplugin WHERE plugin_type = 'FAQPlugin');
    

2. 清理页面草稿与历史版本

  • 登录Django CMS后台,检查所有页面的草稿版本和历史版本,手动删除残留的FAQPlugin实例;
  • 页面数量较多时,可通过Django Shell批量处理:
    from cms.models import CMSPlugin
    
    # 筛选并删除所有FAQPlugin实例
    CMSPlugin.objects.filter(plugin_type='FAQPlugin').delete()
    

3. 清理缓存

即使插件设置了cache=False,仍可能存在缓存残留,执行命令清理:

python manage.py clearcache

若使用Redis、Memcached等外部缓存,直接重启服务或清空缓存数据即可。

4. 验证修复

重启Django服务后,访问/en/product/路径,确认KeyError是否已解决。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:06:23