在网站运营中,尤其是产品展示型的网站,产品的详细信息远不止标题和描述。为了更好地满足用户需求,展示产品的价格、库存、颜色、材质等各类个性化参数变得尤为重要。安企CMS(AnQiCMS)凭借其灵活的内容模型和强大的模板标签功能,能够让您轻松地在产品详情页调用并显示这些自定义参数。

前期准备:定义产品自定义参数

要在产品详情页显示自定义参数,首先需要在安企CMS后台为产品模型定义这些参数。安企CMS的核心优势之一就是其高度可定制的内容模型,允许您根据业务需求创建或修改字段。

  1. 登录安企CMS后台:进入您的网站后台管理界面。
  2. 进入内容模型管理:在左侧导航栏找到“内容管理”,然后点击“内容模型”。
  3. 编辑产品模型:通常情况下,安企CMS会内置“产品模型”。找到并点击“管理字段”进入产品模型的字段编辑页面。如果您是为特定的产品类型创建了自定义模型,则选择对应的模型进行编辑。
  4. 添加自定义字段
    • 点击“添加字段”按钮。
    • 参数名:这是该字段在后台管理界面显示的名称,例如“产品价格”、“库存数量”、“产品颜色”或“产品材质”。
    • 调用字段:这是在模板代码中用于调用该参数的实际字段名。请使用英文小写字母或驼峰命名法,例如 pricestockcolormaterial。这个字段名是后续模板调用的关键。
    • 字段类型:根据参数的性质选择合适的字段类型。例如,“产品价格”可以选择“数字”或“单行文本”,“库存数量”可以选择“数字”,“产品颜色”如果选项固定,可以选择“单项选择”或“多项选择”,并设置默认值。
    • 是否必填:根据业务需求勾选。
    • 默认值:如果该字段有常用默认值,可以在此设置。
  5. 保存并更新缓存:定义完所有需要的自定义参数后,记得保存更改,并清除系统缓存,确保设置生效。

完成以上步骤后,当您在“内容管理”中发布或编辑产品时,就可以看到并填写这些新定义的自定义参数了。

在产品详情页调用并显示自定义参数

安企CMS的模板系统基于Django模板引擎语法,提供了多种标签来灵活调用数据。在产品详情页,您可以利用 archiveDetail 标签和 archiveParams 标签来显示自定义参数。

方法一:直接调用特定参数

对于像“价格”(Price)和“库存”(Stock)这样常用的、或在产品模型中已明确定义为独立字段的参数,可以直接通过当前产品的 archive 对象来调用。同样,如果您自定义的字段调用名为 colormaterial,也可以直接调用。

在产品详情页的模板文件(通常是 product/detail.html 或自定义的产品模板)中,您可以这样调用:

  • 价格{{archive.Price}}{% archiveDetail with name="Price" %}
  • 库存{{archive.Stock}}{% archiveDetail with name="Stock" %}
  • 其他自定义字段 (假设调用字段名为 material): {{archive.material}}{% archiveDetail with name="material" %}

这里,archive 指代当前产品详情页的完整产品数据对象。直接调用方式简洁明了,适用于那些您知道具体调用字段名且希望单独展示的参数。

方法二:遍历所有自定义参数

当您有多个自定义参数,或者希望以统一的格式(例如一个参数列表)展示所有附加信息时,archiveParams 标签就显得非常方便。它能够遍历当前产品关联的所有自定义参数。

使用 archiveParams 标签时,您可以指定 sorted=true 来获取一个有序的参数列表,方便循环显示。

{# 假设这是您的产品详情页模板 product/detail.html #}

<div class="product-info">
    <h1>{{archive.Title}}</h1>

    {# 直接调用价格和库存 #}
    <p><strong>产品价格:</strong><span class="price">{{archive.Price}} 元</span></p>
    <p><strong>库存:</strong><span class="stock">{{archive.Stock}} 件</span></p>

    {# 遍历所有其他自定义参数 #}
    <h3>产品详细参数:</h3>
    <ul class="product-params">
        {% archiveParams params with sorted=true %}
            {% for item in params %}
                {# 排除掉价格和库存,因为它们已经在上面单独显示了 #}
                {% if item.Name != "产品价格" and item.Name != "库存数量" %}
                    <li>
                        <span>{{item.Name}}:</span>
                        <span>{{item.Value}}</span>
                    </li>
                {% endif %}
            {% endfor %}
        {% endarchiveParams %}
    </ul>

    <h3>产品描述:</h3>
    <div class="product-description">
        {{archive.Content|safe}} {# archive.Content 可能包含HTML,需要safe过滤器 #}
    </div>
</div>

代码解析:

  • {{archive.Title}}:直接显示产品的标题。
  • {{archive.Price}}{{archive.Stock}}:直接调用在产品模型中定义的“价格”和“库存”字段值。
  • {% archiveParams params with sorted=true %}:这个标签用于获取当前产品的所有自定义参数,并将其赋值给名为 params 的变量。sorted=true 确保这些参数按照后台定义的顺序返回,便于统一展示。
  • {% for item in params %}:循环遍历 params 变量中的每一个自定义参数。
  • {% if item.Name != "产品价格" and item.Name != "库存数量" %}:这是一个条件判断,用于跳过那些您已经在前面单独展示过的参数,避免重复显示。请将这里 "产品价格""库存数量" 替换为您在后台“参数名”中实际填写的名称。
  • {{item.Name}}:显示自定义参数的名称(即您在后台“参数名”中填写的中文名称)。
  • {{item.Value}}:显示自定义参数的值。
  • {{archive.Content|safe}}:显示产品的内容。|safe 过滤器是必要的,因为产品内容通常是富文本格式,可能包含HTML标签,需要避免被转义。

通过这两种调用方式的结合,您可以灵活地在产品详情页展示所有重要的自定义参数,提升网站内容的信息量和用户体验。

总结

安企CMS通过其高度灵活的内容模型和直观的模板标签,极大地简化了产品自定义参数的调用和展示过程。无论您是需要突出显示核心参数,还是以列表形式展示所有附加信息,安企CMS都提供了高效且易于操作的解决方案。通过合理规划您的内容模型字段,并利用上述模板标签,您可以为用户提供更加详尽和个性化的产品详情页面。


常见问题 (FAQ)

  1. Q: 我在后台设置了自定义参数,但为什么产品详情页没有显示? A: 首先,请检查您在模板中使用的调用字段名(`{{archive.your_custom_field