替换HTML表中的值?

时间:2019-01-15 20:57:51

标签: javascript jquery html django django-simple-history

我正在制作一个HTML表来显示(在储藏室中)已添加,移除和更改的框。标题表示框的所有者,发生的更改的类型以及框的新内容。

我正在使用Django作为我的后端。

我可以将“变更类型”中的值转换为英文单词而不是符号(〜,-和+)吗?我正在使用Django简单历史记录对模型的更改,并返回这些符号。我希望表格分别显示为“已更改”,“已删除”和“已添加”,而不是“〜”,“-”和“ +”。

My table

这是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>

1 个答案:

答案 0 :(得分:1)

正如评论中已经提到的,只需将模板中的{{ item.history_type }}更改为{{ item.get_history_type_display }}

这是什么法术,它是从哪里来的?

这实际上是香草django功能,在Model instance reference中有解释。

  

对于每个设置了 choices 的字段,该对象将具有 get_FOO_display()方法,其中 FOO 是字段名称。此方法返回该字段的“人类可读”值。

为什么它对django-simple-history的history_type字段有效?

非常简单:history_type字段具有上述的 choices 集。我通过查看github上的their source代码来进行检查。

"history_type": models.CharField(
    max_length=1,
    choices=(("+", _("Created")), ("~", _("Changed")), ("-", _("Deleted"))),
),