Python Django数据表和枚举
我的竞选模式如下:Python Django数据表和枚举,python,django,enums,Python,Django,Enums,我的竞选模式如下: 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(def
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活动
objective字段是一个自由文本,但我对它不满意
我想创建两个不同的枚举(枚举34):
然后在同一列中使用它们。但不知道怎么做
我想使用enum,因为我需要其他的用法来在代码中轻松地使用它。e、 g:
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
s,您有两个选择:
- 使用嵌套的
类(请参阅)Enum
- 使用两个类并让您的实现在它们之间进行选择(这需要在名称中嵌入FaceBook或Twitter代码,例如FB_uu和TW_u,或者在两个
s中使用唯一的名称,以便在从db转到Python时可以反转查找)Enum
可能会对细节有所帮助。是的,但我试图用另一种方式解决它。谢谢。如果我使用嵌套枚举,它可以与django模型一起工作吗?@Dejell:我不知道。我说我对Django不太了解,这不是开玩笑。
Class Objective(Enum):
FB_MOBILE_APP_ENGAGEMENT
FB_MOBILE_APP_DOWNLOAD
TW_VIDEO_VIEWS_PREROLL
TW_TWEET_ENGAGEMENTS