如果想要将下面的表格里的内容数字换成对应的内容:
需要更改成这样:
下面是步骤:
在 python 里的 models.py 文件里,创建数据表的时候,用到了 choices
class Example(models.Model):
name = models.CharField(verbose_name="名称", max_length=32)
price = models.IntegerField(verbose_name="价格")
# 只适用于固定的选择
category = models.SmallIntegerField(verbose_name="资产类型", choices=((1, '文具类'), (2, '3C类'), (3, '房产类')))
在 views.py
文件里,从数据库里获取数据,传给前端页面:
def example_list(request):
queryset = models.Example.objects.all().order_by("-id")
return render(request, 'example_list.html', { "queryset": queryset })
在 example_list.html
文件里,做修改
<table border="1px">
<thead>
<tr>
<th>ID</th>
<th>标题</th>
<th>价格</th>
<th>分类</th>
</tr>
</thead>
<tbody>
{% for obj in queryset %}
<tr>
<td>{{ obj.id }}</td>
<td>{{ obj.name }}</td>
<td>{{ obj.price }}</td>
<td>{{ obj.get_category_display }}</td>
</tr>
{% endfor %}
</tbody>
</table>
在 html 里,得必须通过 obj.get_列表名称_display
的方法才能调用 choices 里的内容。
要想在 views.py 里,从数据库获取内容,可以通过
# 必须得添加括号 ()
obj.get_列表名称_display()
点个赞呗~