gpt4 book ai didi

python - Django 中的枚举类型

转载 作者:行者123 更新时间:2023-12-04 08:14:16 24 4
gpt4 key购买 nike

我正在尝试在 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's documentation使用枚举类型 但就我的理解而言,有一些灰色地带。
当我渲染模板以显示 Listing ,如何传递与 .category 关联的字符串值我的 Listing ?
我试过这样的事情:
return render(request, "auctions/listing.html", {
"listing": listing,
"category": Listing.Category[listing.category].label,
})
或者我可以通过 "listing" 访问它多变的?我想要的是浏览器显示 Home对于 listinglisting.category = "HO" .

最佳答案

每当您使用有选择的字段时,Django 都会为您提供一种方法来使用 get_<field_name>_display ,您可以在模板中使用它,例如:

{{ listing.get_category_display }}

关于python - Django 中的枚举类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65790496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com