如果想要将下面的表格里的内容数字换成对应的内容:
需要更改成这样:
下面是步骤:
在 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()
点个赞呗~