Drupal Views添加Contextual Filter报错,表单无法提交求助
解决Drupal Commerce视图添加Product ID上下文过滤器提交无响应的问题
问题根源:这个隐藏的必填Profile Type下拉框,一般是视图配置意外引入了Commerce顾客资料(Profile)的依赖,但系统未正确加载对应选项导致的——可能是视图关系配置错误、模块冲突,或者缺少启用的Profile类型。
临时应急修复:
- 打开浏览器开发者工具(F12),找到那个
display: none的Profile Type下拉框元素:- 删除它的
required属性,或者修改为required="false" - 手动添加一个默认选项,比如
<option value="customer" selected>Customer</option>(如果你的站点存在该Profile类型)
- 删除它的
- 重新点击「应用」按钮完成上下文过滤器配置,之后再去排查深层问题。
- 打开浏览器开发者工具(F12),找到那个
彻底排查解决:
- 检查视图的关系(Relationships):如果意外添加了和Profile相关的关系(比如「Commerce Order: Customer profile」),直接删除该关系。
- 检查Commerce模块:临时禁用非核心的Commerce扩展(如
commerce_cart的子模块),测试视图配置是否恢复正常,排查模块冲突。 - 确认Profile类型配置:进入
/admin/config/people/profiles/types,确保至少存在一个启用的Profile类型(比如默认的Customer类型),没有的话先创建基础Profile类型。 - 清除缓存:执行
drush cr命令,或在后台/admin/config/development/performance页面清除所有缓存,确保配置加载正常。 - 检查视图其他配置:排查是否有字段/过滤器依赖了Profile类型,移除不必要的依赖项。
替代方案(若上述方法无效):
重新创建极简视图实现需求:- 选择「Product」作为视图类型,设置所需显示格式(如网格)
- 添加Product ID上下文过滤器,选择「从URL获取Content ID」,并设置「过滤器值不可用时」为「显示无结果」
- 添加过滤器:筛选「Product ID」不等于当前上下文ID
- 添加关系「Product: Categories」,再添加分类术语过滤器,确保只显示与当前产品同分类的产品
内容的提问来源于stack exchange,提问作者Chris Costa
相关产品推荐
相关产品推荐

