在 django 模板中设置和重置变量的值
Posted
技术标签:
【中文标题】在 django 模板中设置和重置变量的值【英文标题】:Setting and resetting value of variable in django template 【发布时间】:2011-08-06 19:33:13 【问题描述】:我想在 django 模板中设置和重置标志变量。有没有办法做到这一点?
% for software in softwares %
//here want to asign default value to flag( flag = False)
% for mysoftware in mysoftwares %
% if mysoftware.name == software.name %
//here want to set value to True to flag( flag = True)
software.name <br />
% endif %
% endfor %
//check flag here
% if flag == False %
Software not assigned.
% endif %
% endfor %
【问题讨论】:
【参考方案1】:据我所知,没有办法做到这一点。也许在您的视图中预先计算一个元组列表,然后对其进行迭代 - 显示结果。例如:
% for software, assigned in software_list %
% if assigned %
software.name
% else %
Software not assigned
% endif %
% endif %
然后,在您看来,只需使用简单的 python 构造填充 software_list 数据:
names = [mysoftware.name for mysoftware in mysoftwares]
software_list = [(software, software.name in names) for software in softwares]
并将其添加到您的上下文中。
在模板中尝试做太多事情往往很诱人,而这并不是他们真正的目的。如果您将逻辑保存在它所属的 python 中,您将获得更好的可读性。
【讨论】:
以上是关于在 django 模板中设置和重置变量的值的主要内容,如果未能解决你的问题,请参考以下文章