msgprop.EnumProperty和messages.Enum使用Python 3和Cloud NDB的最佳实践是什么?

问题描述 投票:0回答:1

使用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的最佳实践是什么?

谢谢

python google-app-engine google-cloud-datastore app-engine-ndb google-app-engine-python
1个回答
0
投票
抱歉,我没有测试项目来验证这一点,但是python 3有枚举。您应该可以直接进行以下操作:

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)

© www.soinside.com 2019 - 2024. All rights reserved.