Django里choices字段使用中文使用

如果想要将下面的表格里的内容数字换成对应的内容:

需要更改成这样:


下面是步骤:

在 python 里的 models.py 文件里,创建数据表的时候,用到了 choices

python 复制代码
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 文件里,从数据库里获取数据,传给前端页面:

python 复制代码
def example_list(request):
    queryset = models.Example.objects.all().order_by("-id")

    return render(request, 'example_list.html', { "queryset": queryset })

example_list.html 文件里,做修改

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 里,从数据库获取内容,可以通过

python 复制代码
# 必须得添加括号 ()
obj.get_列表名称_display() 

点个赞呗~

相关推荐
vi121232 分钟前
ENVI 地形量化与植被指数反演
开发语言·python
rising start4 分钟前
一、FastAPI入门
python·fastapi·端口
m***66735 分钟前
springboot集成onlyoffice(部署+开发)
java·spring boot·后端
u***28476 分钟前
golang debug调试
开发语言·后端·golang
老神在在0017 分钟前
MyBatis02
后端·spring·java-ee·mvc·mybatis
知其然亦知其所以然8 分钟前
Java 也能玩高质量 AI 绘图?SpringAI + Azure OpenAI 真香警告!
后端·spring·机器学习
闲人编程10 分钟前
Flask应用工厂模式:构建可扩展的大型应用
后端·python·flask·工厂模式·codecapsule·应用工厂
f***65110 分钟前
spring 跨域CORS Filter
java·后端·spring
v***85713 分钟前
SpringBoot Maven快速上手
spring boot·后端·maven
星释15 分钟前
Rust 练习册 99:让数字开口说话
开发语言·后端·rust