使用Python 2和NDB,我们可以通过以下方式将Enum存储在实体的属性中:
from google.appengine.ext import ndb
from google.appengine.ext.ndb import msgprop
from protorpc import messages
class CoreWebhookService(messages.Enum):
UNKNOWN = 0
AUTH0 = 1
class CoreWebhook(ndb.model):
service = msgprop.EnumProperty(CoreWebhookService, required=True)
url = ndb.StringProperty(required=True)
根据本指南,对于Python 3,它表示google.appengine.ext.ndb.msgprop.EnumProperty的If you try to create these objects, a NotImplementedError will be raised.
。
我了解
from google.appengine.ext import ndb
正在被替换
from google.cloud import ndb
但是由于未实施,从现在开始,Enum的最佳实践是什么?
谢谢
from enum import IntEnum
class CoreWebhookService(IntEnum):
UNKNOWN = 0
AUTH0 = 1
class CoreWebhook(ndb.model):
service = IntegerProperty(required = true, choices=list(CoreWebhookService))
url = ndb.StringProperty(required=True)