【发布时间】:2014-05-15 13:13:33
【问题描述】:
我最近开始使用 Django 模板,经常在别人的代码中发现以下模式:
{% ifequal value 1 %}
<input type="checkbox" name="{{ item.name }}" id="{{ item.name }}" checked="checked" />
{% else %}
<input type="checkbox" name="{{ item.name }}" id="{{ item.name }}" />
带有 Django 模板变量的条件用于定义一个或多个 HTML 元素属性的值。这会复制 HTML 代码并破坏 DRY 原则。我该如何避免呢?
我考虑过的替代方案:
1) 将条件嵌入到选中的属性中。
- 专业版:符合 DRY 标准
- 缺点:使代码更难阅读,特别是在条件更复杂并且操作了多个 HTML 元素属性的情况下
2) 使用模板变量值定义 Javascript 变量,并使用 Javascript 生成 HTML 元素。
- 专业版:符合 DRY 标准
- 骗局:将逻辑移至客户端
欢迎提出建议。
【问题讨论】:
-
解决这个问题的真正方法当然是使用 Django 的表单框架。
标签: python django django-templates