我正在制作一个HTML表来显示(在储藏室中)已添加,移除和更改的框。标题表示框的所有者,发生的更改的类型以及框的新内容。
我正在使用Django作为我的后端。
我可以将“变更类型”中的值转换为英文单词而不是符号(〜,-和+)吗?我正在使用Django简单历史记录对模型的更改,并返回这些符号。我希望表格分别显示为“已更改”,“已删除”和“已添加”,而不是“〜”,“-”和“ +”。
这是view.py:
def dashboard(request):
box_content_history = Box.history.all().order_by('-history_date')
return render(request, 'main_app/dashboard.html', {""box_content_history":box_content_history})
HTML:
<table id="asset_changes_datatable">
<thead>
<tr>
<th>Owner</th>
<th>Type of Change</th>
<th>Box Contents</th>
</tr>
</thead>
<tbody>
{% for item in box_content_history %}
<tr>
<td>{{ item.project_assigned_to }}</td>
<td>{{ item.history_type }}</td>
<td>{{ item.box_contents }}</td>
</tr>
{% endfor %}
</tbody>
</table>
答案 0 :(得分:1)
正如评论中已经提到的,只需将模板中的{{ item.history_type }}
更改为{{ item.get_history_type_display }}
。
这实际上是香草django功能,在Model instance reference中有解释。
对于每个设置了 choices 的字段,该对象将具有 get_FOO_display()方法,其中 FOO 是字段名称。此方法返回该字段的“人类可读”值。
history_type
字段有效?非常简单:history_type
字段具有上述的 choices
集。我通过查看github上的their source代码来进行检查。
"history_type": models.CharField( max_length=1, choices=(("+", _("Created")), ("~", _("Changed")), ("-", _("Deleted"))), ),