在 HTML table 中替换值?
Substituting values in a HTML table?
我正在制作一个 HTML table 来显示已添加、删除和更改的盒子(在储藏室中)。标题表示框的所有者、发生的更改类型和框的新内容。
我的后端使用 Django。
我可以将 'Type of Change' 中的值翻译成英文单词而不是符号(~、- 和 +)吗?我正在使用 Django simple-history 记录对我的模型的更改,它 returns 这些符号。我希望我的 table 恭敬地阅读 'Changed'、'Removed' 和 'Added' 来代替 '~'、'-' 和 '+'。
这是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>
如评论中所述,只需将模板中的 {{ item.history_type }}
更改为 {{ item.get_history_type_display }}
。
这是什么魔法,它来自哪里?
这实际上是普通的 django 功能,在 Model instance reference 中有解释。
For every field that has choices set, the object will have a get_FOO_display() method, where FOO is the name of the field. This method returns the “human-readable” value of the field.
为什么它适用于 django-simple-history 的 history_type
字段?
非常简单:history_type
字段具有前面提到的 choices
集。我通过查看 github.
上的 their source 代码进行了检查
"history_type": models.CharField(
max_length=1,
choices=(("+", _("Created")), ("~", _("Changed")), ("-", _("Deleted"))),
),
我正在制作一个 HTML table 来显示已添加、删除和更改的盒子(在储藏室中)。标题表示框的所有者、发生的更改类型和框的新内容。
我的后端使用 Django。
我可以将 'Type of Change' 中的值翻译成英文单词而不是符号(~、- 和 +)吗?我正在使用 Django simple-history 记录对我的模型的更改,它 returns 这些符号。我希望我的 table 恭敬地阅读 'Changed'、'Removed' 和 'Added' 来代替 '~'、'-' 和 '+'。
这是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>
如评论中所述,只需将模板中的 {{ item.history_type }}
更改为 {{ item.get_history_type_display }}
。
这是什么魔法,它来自哪里?
这实际上是普通的 django 功能,在 Model instance reference 中有解释。
For every field that has choices set, the object will have a get_FOO_display() method, where FOO is the name of the field. This method returns the “human-readable” value of the field.
为什么它适用于 django-simple-history 的 history_type
字段?
非常简单:history_type
字段具有前面提到的 choices
集。我通过查看 github.
"history_type": models.CharField( max_length=1, choices=(("+", _("Created")), ("~", _("Changed")), ("-", _("Deleted"))), ),