1

私はこのようなモデルを持っています:

class Group(db.Model):
  name = db.StringProperty()
  description = db.TextProperty()

次のようなクエリを実行する場合があります。

groups = Group.all().order("name").fetch(20)

また

groups = Group.all()

次のようなエラー メッセージが表示されます。

Traceback (most recent call last):
File "/opt/google_appengine/google/appengine/ext/webapp/__init__.py", line 501, in __call__
handler.get(*groups)
File "/home/al/Desktop/p/mwr-dev/main.py", line 638, in get
groups = Group.all()
AttributeError: type object 'Group' has no attribute 'all'

しかし、同じ意味で GQL クエリを使用している場合は、すべてうまくいきます。

なぜそれが起こるのですか?GAE が「すべて」が属性であると考える理由がわかりません。


更新:おっと...モデルと同じ名前のリクエストハンドラーもあることがわかりました;(

4

1 に答える 1

4

all確かに属性(具体的には実行可能なもの、メソッド)ですが、グループはモデルから継承するため、その属性が必要です。明らかに何か奇妙なことが起こっています。たとえば、その時点での Group という名前は、あなたが考えているオブジェクトを参照していません。呼び出しをtry/で囲みexcept AttributeError, e:、ブランチで、 について見つけられるすべての情報 (実際に何があるか、その など) を出力することをお勧めします。groups = Group.all()exceptGroup__bases__dir()

Groupこれは、誰が知っているかを実行している可能性のある数百行のコードを見ずに、どこまであなたを助けることができるかについてです (名前に非常に奇妙なことが起こったに違いないことを診断し、詳細を特定する方法を提案します)。その名前に!-)。

于 2009-08-03T22:40:22.487 に答える