1

Google App Engine では、次のような webapp2 モデルがあります。

def Person(db.model):
    first_name = db.StringProperty()
    surname = db.StringProperty()
    languages_spoken = db. ListProperty()

ただし、時間の経過とともに変化する可能性のある、英語、フランス語、スペイン語などのオプションのリストに制約された languages_spoken リストが必要です。SQL を使用すると、これは person、language、および person_language テーブル (または同様のもの) で簡単に実行できますが、この場合、または可能であるとしても、どうすればよいかわかりません。何か提案はありますか?

4

3 に答える 3

2

appengine プロジェクトを開始している場合は、データストアの代わりに新しい NDB を使用してください。次のような引数でプロパティを使用できます: 選択肢とバリデータ: https://developers.google.com/appengine/docs/python/ndb/properties

于 2012-11-06T22:55:43.197 に答える
2

最後に、他の2つの回答からのポインタのおかげで、これで行きました:

from google.appengine.ext import ndb

languages = ['English', 'French', 'Spanish']

def Person(ndb.model):
    first_name = ndb.StringProperty()
    surname = ndb.StringProperty()
    languages_spoken = ndb.StringProperty(repeated=True, choices=languages)
于 2012-11-08T20:29:54.187 に答える
2

NDB を使用すると、次のことが可能になります。

def Person(ndb.model):
    first_name = db.StringProperty()
    surname = db.StringProperty()
    languages_spoken = db. ListProperty(choices=['English', 'French', 'Spanish'])

詳細については、NDB プロパティ オプションをご覧ください。

ただし、これらのオプションは「オンザフライ」で変更できないことに注意してください。アプリケーションで新しいオプションがサポートされている場合は、モデルに手動で追加する必要があります。

于 2012-11-07T07:37:25.560 に答える