1

私はgae-boilerplate(webapp2とjinja2)を使用しています。私のモデルは次のようになります。

class Location(ndb.Model):
    x = ndb.FloatProperty()
    y = ndb.FloatProperty()

class Criterium(polymodel.PolyModel):
    name = ndb.StringProperty(required=True)
    user = ndb.KeyProperty(kind='User')
    priority = ndb.IntegerProperty(required=True)

class Work(Criterium):
    location = ndb.StructuredProperty(Location)

class Friend(Criterium):
    location = ndb.StructuredProperty(Location)

Criteriumモデルのすべてのレコードを含むテーブルがあります。そこに削除リンクを追加したいのですが、特定のエンティティを参照するためにどの引数を渡すかわかりません。私のハンドラーは次のようになります。

def get(self):
    criteria = Work.query().order(-Criterium.priority, Criterium.name)
    self.view.list_columns = [('name', 'Name'),
                         ('priority', 'Priority'),
                         ('className', 'Type')]
    self.view.criteria = criteria
    self.view.count = criteria.count()
    params={}
    self.render_template('list.html', **params)

単純な問題のようですが、一日中苦労しています...よろしくお願いします!

4

2 に答える 2

1

idオブジェクトの はどうですか?これは、モデル
内のそのオブジェクトの一意の識別子です。Criterium

条件エンティティをループする場合:

for criterum in criteria:
    criterum.key.id()
于 2013-03-19T16:03:04.687 に答える
0

以下の例を参照してください

google.appengine.ext インポート ndb から

クラス ユーザー (ndb.Model):

created = ndb.DateTimeProperty(auto_now_add = True)
firstName = ndb.StringProperty(required = True)
lastName = ndb.StringProperty(required = True)
email = ndb.StringProperty(required = True)
pwHash = ndb.StringProperty(required = True)

@classmethod
def byEmail(cls, email):
    u = cls.query(cls.email == email).get()
    return u

@classmethod
def register(cls, firstname, lastname, email, password):
    pwhash = utils.makePwHash(email, password)
    return User(firstName=firstname,
        lastName=lastname,
        email=email,
        pwHash=pwhash)

@classmethod
def login(cls, email, password):
    u = User.byEmail(email)
    if u and utils.validPW(email, password, u.pwHash):
        return u
于 2013-03-19T20:04:43.090 に答える