如何在特殊Django字符中使用Django

2024-09-29 06:22:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是enum34包,如所描述的here。在

以下是文章中使用的示例:

from common.utils import ChoiceEnum

class StudentTypes(ChoiceEnum):
    freshman = 0
    sophomore = 1
    junior = 2
    senior = 3

# within your models.Model class...
student_type = models.CharField(max_length=1, choices=StudentTypes.choices())

但是,在我的枚举字段中,我希望使用:(例如16:9)。在

有办法吗?在


Tags: fromimport示例heremodels文章utilscommon
3条回答

你能确定你理解什么是枚举吗?在这个例子中,freshman用0表示,so二用1等表示。不能使用字符串,例如"16:9"作为枚举中的表示。在

枚举中的名称必须是有效的Python标识符。但是,还有其他方法可以将字符串(例如带冒号的字符串)映射到整数,反之亦然。在

我发现我不需要enum34包,而且很容易手工完成:

WIDE= 0
BOX = 1
RATIO_CHOICES = (
    (WIDE, '16:9'),
    (BOX, '4:3'),
)
aspect_ratio = models.IntegerField(choices=RATIO_CHOICES, default=WIDE)

我不确定我是否完全理解你的问题。要在枚举中使用16:9作为属性吗?不能,因为:不是任何属性的正确字符。你不能在你的代码中任何地方使用一个叫做16:9的变量。参见:https://docs.python.org/3/reference/lexical_analysis.html#grammar-token-identifier

相关问题 更多 >