我有一个广告系列模型如下:
id campaign objective platform
1 Hello Word MOBILE_APP_ENGAGEMENT Facebook
2 Hi There VIDEO_VIEWS_PREROLL Twitter
型号:
class Campaign(Model):
id = models.TextField(primary_key=True)
name = models.TextField(default="")
objective = models.TextField(null=True)
platform = enumfields.EnumField(Platform, max_length=10, null=True)
该事件包含 Twitter 和 FB 事件。
目标字段是一个自由文本,但我对此并不满意。
我想创建 2 个不同的枚举 (enum34):
class FacebookObjective(Enum):
MOBILE_APP_ENGAGEMENT
MOBILE_APP_DOWNLOAD
class TwitterObjective(Enum):
VIDEO_VIEWS_PREROLL
TWEET_ENGAGEMENTS
并以某种方式在同一列上使用它们。但不确定该怎么做。
我想使用枚举,因为我需要其他用途以便在代码中轻松使用它。例如:
TwitterObjective.VIDEO_VIEWS_PREROLL
据我所知(这与 Django 无关),要完成这项工作,您需要为每个字段使用一个 Enum
。因此,在您的情况下,我会将 Twitter 或 FB 名称放在成员的名称中:
Class Objective(Enum):
FB_MOBILE_APP_ENGAGEMENT
FB_MOBILE_APP_DOWNLOAD
TW_VIDEO_VIEWS_PREROLL
TW_TWEET_ENGAGEMENTS
如果你真的想使用不同的Enum
,你有几个选择:
This answer可能有助于了解细节。
我是一名优秀的程序员,十分优秀!