0

同じコード、本番環境では、開発中は機能しません。

モデル:

class Comput(ndb.Model):
    @staticmethod
    def membership(user):
        q = ndb.gql("SELECT * FROM Members WHERE member = :1", user)
        result = q.fetch()
        return [m.comput.get() for m in result]
        #return [m.comput.get() for m in q] #same issue (dev yes, prod no)

class Members(ndb.Model):
    comput = ndb.KeyProperty(kind=Comput)
    member = ndb.UserProperty()

ハンドラ:

comput_list = Comput.membership(users.get_current_user())

テンプレート:

{% for comput in comput_list %}
    <tr onclick="location.href='/comput?id={$ comput.key.id() $}'">

トレースバック (本番環境のみ):

UndefinedError: 'None' has no attribute 'key'

これは、comput_listエンティティがある場合でも表示されます。

更新: メンバーの自動生成インデックスはありません。手動で追加しようとしましたが、何も変わりません

4

1 に答える 1

1

オブジェクトの1つにそのプロパティMembersにNoneが含まれているようです。comput本番データビューアを使用して(またはログステートメントを追加して)、それがどのメンバーであるかを見つけます。

于 2012-07-01T12:58:29.140 に答える