我不确定标题在技术上是否正确(对不起,我是python + django的新手)
我有一个模板页面,显示应用程序是运行还是停止取决于其状态。例如:
如果app正在运行,我想显示:
<div class="lt">
<a class="play" title="App running">
<span class="text_play">Running</span>
</a>
</div>
<div class="rt">
<input type="submit" onclick="stop_app()" value="stop" class="stop">
</div>
如果应用程序未运行,请改为显示:
<div class="lt">
<input type="submit" onclick="star_app()" value="start" class="play">
</div>
<div class="rt">
<a class="stop" title="Application is not running">
<span class="test_stop">Not Running</span>
</a>
</div>
这是一种简化的简化html,但我的观点是我怎样才能避免重复自己?
模板传递一个应用程序字典,它迭代它以显示所有应用程序及其状态(运行/停止)。所以目前我已经两次迭代dict,一个用于&#34;停止&#34;应用程序和一个用于&#34;运行&#34;应用。
希望它清楚
提前致谢
编辑:这是我到目前为止所尝试的:
{% if application.service.status|lower == "enabled" %}
<div>...display running HTML...</div>
{% else %}
<div>...display the non-runing HTML..</div>
{% endif %}
我只是想知道我做的是否正确(DRY?)
答案 0 :(得分:4)
你提出的建议非常糟糕。
{% if application.service.status|lower == "enabled" %}
<div>...display running HTML...</div>
{% else %}
<div>...display the non-runing HTML..</div>
{% endif %
请记住,你将依赖于返回渲染(请求...用于确定HTML Django需要构造。
您建议的解决方案将选择其中一个。即如果您的非运行HTML需要切换到运行HTML,则无法在没有其他渲染的情况下访问它。
为了更清晰简洁,django模板将构建适当的HTML,而忽略了替代选项或“条件”。
如果你学习了一些jQuery,你可以让页面的元素切换当前显示的html。将此扩展为ajax将允许您从服务器获取状态更新,反之亦然。