所以我有一系列具有作用的对象。每个角色都有下划线表示空格。现在我知道,在大多数情况下,最好的方法是简单地将数据库中的值更改为正确的格式,但是我需要它具有空格。
因此,值看起来像这样:
role: this_is_my_role
我需要它看起来像这样:
role: this is my role
但仅出于我的观点。我已经尝试了以下方法,但是它不起作用。
def view_info(request):
device = Device.objects
for item in device:
item.role = item.role.replace('_', ' ')
return render(request, 'table_view.html', {'device': device})
请注意,我不想要更改数据库中的实际值。我只想在渲染模板之前更改该值。
答案 0 :(得分:2)
这不是正确的方法。您有一种格式的数据,并且想要以另一种格式显示。您可以使用自定义模板过滤器在模板本身中执行此操作,也可以在模型上提供一个属性,以输出转换后的数据。第二个可能是最简单的:
<html>
<head>
<style>
.name3{
border: 1px solid black;
height: 53px;
width: 93px;
}
.name{
border: 0.5px solid black;
height: 10px;
width: 92px;
float: left;
}
.name1{
border: 0.5px solid black;
height: 41px;
width: 30px;
float: left;
clear: left;
}
#name2one{
height: 20px;
width: 30px;
border: 0.5px solid black;
float: left;
clear: none;
}
</style>
</head>
<body>
<div class="name3">
<div class="name"></div>
<div class="name1"></div>
<div id="name2one"></div>
<div id="name2one"></div>
<div id="name2one"></div>
<div id="name2one"></div>
</div>
</body>
</html>
现在,您只需将查询集传递给模板,然后执行class Device(models.Model):
...
@property
def role_output(self):
return self.role.replace('_', ' ')
即可获取转换后的值。