python - Django 中的枚举类型
问题描述
我正在尝试在 Django 中使用枚举类型,但好像我没有做正确的事情......
我正在构建一个类似 ebay 的 web 应用程序,其中我的列表与.category
属性一起保存在数据库中。
class Listing(models.Model):
class Category(models.TextChoices):
TOY = "TO", _("Toys")
FASHION = "FA", _("Fashion")
ELECTRONICS = "EL", _("Electronics")
HOME = "HO", _("Home")
OTHERS = "OT", _("Others")
title = models.CharField(max_length=64)
category = models.CharField(
max_length=2,
choices=Category.choices,
default=Category.OTHERS,
)
我参考了Django 的文档以了解枚举类型的使用,但据我所知,存在一些灰色区域。
当我渲染模板以显示 aListing
时,如何传递与.category
my关联的字符串值Listing
?
我试过这样的事情:
return render(request, "auctions/listing.html", {
"listing": listing,
"category": Listing.Category[listing.category].label,
})
或者我可以通过"listing"
变量访问它吗?我想要的是浏览器显示Home
一个listing
with listing.category = "HO"
。
解决方案
每当您使用具有选项的字段时,Django 都会为您创建一个方法供您使用get_<field_name>_display
,您可以在模板中使用它,例如:
{{ listing.get_category_display }}
推荐阅读
- java - 使用 java api t24 的输入例程
- .net - 如何:使用 Vb.Net 隐藏和显示 Tap 页面
- javascript - 如何在节点 js 中使用 xlsx/sheetjs 包在现有 xlsx 文件中创建新工作表?
- kotlin - 如何在使用带有 mapstruct 和不可变 kotlin 对象的构造函数实例化时进行部分更新
- r - 合并数据集并为 r 中其他数据集的缺失数据添加 0 行
- c++ - OOP 文件读取问题
- python - 在python中使用带有group by的条件滚动计数
- sql - AWS Athena 自定义数据格式?
- android - rs 文件中的 RenderScript 复制 3D 分配
- r - R dplyr:使用 dplyr 将列从字符转换为整数的问题