在网站运营中,尤其是产品展示型的网站,产品的详细信息远不止标题和描述。为了更好地满足用户需求,展示产品的价格、库存、颜色、材质等各类个性化参数变得尤为重要。安企CMS(AnQiCMS)凭借其灵活的内容模型和强大的模板标签功能,能够让您轻松地在产品详情页调用并显示这些自定义参数。
前期准备:定义产品自定义参数
要在产品详情页显示自定义参数,首先需要在安企CMS后台为产品模型定义这些参数。安企CMS的核心优势之一就是其高度可定制的内容模型,允许您根据业务需求创建或修改字段。
- 登录安企CMS后台:进入您的网站后台管理界面。
- 进入内容模型管理:在左侧导航栏找到“内容管理”,然后点击“内容模型”。
- 编辑产品模型:通常情况下,安企CMS会内置“产品模型”。找到并点击“管理字段”进入产品模型的字段编辑页面。如果您是为特定的产品类型创建了自定义模型,则选择对应的模型进行编辑。
- 添加自定义字段:
- 点击“添加字段”按钮。
- 参数名:这是该字段在后台管理界面显示的名称,例如“产品价格”、“库存数量”、“产品颜色”或“产品材质”。
- 调用字段:这是在模板代码中用于调用该参数的实际字段名。请使用英文小写字母或驼峰命名法,例如
price、stock、color、material。这个字段名是后续模板调用的关键。 - 字段类型:根据参数的性质选择合适的字段类型。例如,“产品价格”可以选择“数字”或“单行文本”,“库存数量”可以选择“数字”,“产品颜色”如果选项固定,可以选择“单项选择”或“多项选择”,并设置默认值。
- 是否必填:根据业务需求勾选。
- 默认值:如果该字段有常用默认值,可以在此设置。
- 保存并更新缓存:定义完所有需要的自定义参数后,记得保存更改,并清除系统缓存,确保设置生效。
完成以上步骤后,当您在“内容管理”中发布或编辑产品时,就可以看到并填写这些新定义的自定义参数了。
在产品详情页调用并显示自定义参数
安企CMS的模板系统基于Django模板引擎语法,提供了多种标签来灵活调用数据。在产品详情页,您可以利用 archiveDetail 标签和 archiveParams 标签来显示自定义参数。
方法一:直接调用特定参数
对于像“价格”(Price)和“库存”(Stock)这样常用的、或在产品模型中已明确定义为独立字段的参数,可以直接通过当前产品的 archive 对象来调用。同样,如果您自定义的字段调用名为 color 或 material,也可以直接调用。
在产品详情页的模板文件(通常是 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)
- Q: 我在后台设置了自定义参数,但为什么产品详情页没有显示? A: 首先,请检查您在模板中使用的调用字段名(`{{archive.your_custom_field