問題タブ [app-engine-ndb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
656 参照

google-app-engine - Jinja2テンプレートで子エンティティをループしながら親エンティティを表示する方法

jinja 2 テンプレートでこのソリューションhttps://stackoverflow.com/a/10067749/604240を使用するには?

0 投票する
1 に答える
462 参照

google-app-engine - クエリ結果の数が多い場合、qry.map_async() を使用しても安全ですか?

データストアにクエリを実行し、クエリによって返された各エンティティに対して何らかの作業を行う必要がある AppEngine cron ジョブがあります。クエリによって返されるエンティティの数は、場合によっては大きくなることが予想されます (>1000)。

私の目標は、同時実行性を最大化し、メモリ使用量を低く抑えることです。予想される結果の数が多いため、メモリに収まらない可能性があります。

結果の数が多い場合、次のように反復処理する必要があります。

...または、より高速な map_async() を使用して任意の大きな結果セットを操作しても安全ですか?

私はすべてのドキュメントを読み、実装の根性を見ましたが、これらの操作の制限が大きな結果セットに対して何であるかは完全には明らかではありません.

0 投票する
3 に答える
4779 参照

google-app-engine - ndb を使用してエンティティのバッチを取得、変更、配置する最も効率的な方法

私のアプリでは、実行するバッチ操作がいくつかあります。残念ながら、これは 400 ~ 500 個のエンティティを更新するのに永遠にかかることがあります。私が持っているのはすべてのエンティティ キーです。それらを取得し、プロパティを更新してデータストアに保存する必要があります。保存には最大 40 ~ 50 秒かかりますが、これは探しているものではありません。

私のモデルを単純化して、私が何をしているのかを説明します (とにかく非常に単純です):

取得と変更にそれほど時間はかかりません。タスクレットで get_async を取得しようとしましたが、get または forloop に時間がかかる場合にのみ変更される可能性があります。

しかし、本当に気になるのは、プットに最大50秒かかることです...

この操作を適切な時間内に実行する最も効率的な方法は何ですか。もちろん、エンティティの複雑さなどの多くの要因に依存することはわかっていますが、配置にかかる時間は実際には許容範囲を超えています.
私はすでに非同期操作、タスクレットを試しました...

0 投票する
1 に答える
313 参照

google-app-engine - NDB は key.get() の裏で何をしますか?

NDB はいくつかの非常に優れた機能を提供し、独自のキャッシュ レイヤーで実装する場合よりも一般的に最適化されるはずなので、NDB の使用を開始しています。

ただし、key.get() のような単純な操作で何が起こっているのかをすべて理解しているわけではありません。Appstats は、このような操作中に、起動したばかりの開発サーバーで 4 つの RPC が作成されることを示しています。

memcache.Get ops が 2 つあるのはなぜですか? memcache.Set が datastore_v3.Get の前に表示されるのはなぜですか? デフォルトのキャッシュ オプションを使用します。ndb.context.get を見ると、いくつかの洞察が得られますが、まだ混乱しています。memcache.Set は LOCK について作成されます。しかし、2 つの Get 呼び出しは同じように見えますが、データストアの Get の直後に Set がないのはなぜですか?

0 投票する
1 に答える
6788 参照

google-app-engine - NDBのEntity.all(keys_only = True).fetch(20)に相当するものは何ですか?

NDBで次のクエリと同等の結果を取得するにはどうすればよいですか?

私はあなたがメソッドに渡すことができることを知ってい'keys_only=True'ますiter()。しかし、キーのみのフェッチを実行したい場合、NDBでそれを行うにはどうすればよいですか?

0 投票する
2 に答える
1036 参照

json - Google appengine、ndb、およびJson

次のように、JSONオブジェクトとして保存している属性があります。

これを行うと、次のエラーが発生します。

ndbモデルクラス内。

それとしてはndb.TextProperty正しく動作します。JSONを間違って送信している可能性があります。これは、送信しているJSONオブジェクトです。

0 投票する
1 に答える
3702 参照

google-app-engine - App Engine NDBモデルのkey_nameを指定する最良の方法は何ですか?

各レコードに一意のフィールド「名前」があるndbモデルを作成しようとしています。このフィールドをkey_nameフィールドとして定義し、それを使用してレコードを検索したいと思います。名前フィールドを含める必要がありますか、それともkey_nameフィールドを、一意である限りユーザーが指定できる任意の文字列に設定できますか?

Model.get_or_insertを使用して、古いレコードが上書きされないようにすることを考えていますが、戻り値が新しく作成されたか、既存のものかを判断する方法はありますか?ユーザーが重複した名前を入力した場合にエラーメッセージを表示できるようにしたい。

最後に、上記のndbモデルをメタクラスとして使用するDjangoFormsモデルにkey_nameフィールドを作成して、検証/レンダリングにdjangoformsを使用できるようにしましたが、何らかの理由で定義したフィールドが表示されません。

クラスUserProfileForm(djangoforms.ModelForm):key_name = djangoforms.StringProperty()クラスメタ:モデル= UserProfile

0 投票する
2 に答える
2146 参照

google-app-engine - カーソルによる後方ページネーションは機能していますが、アイテムがありません

アイデア/代替案の検索から、GAEデータストアクエリに一致するアイテムのページ/アイテム数/ナビゲーションの提供まで、 REVERSINGORDERによって単一のカーソルでページナビゲーションを逆方向にする方法のヒントを見つけることができました。

残念ながら、このエラーで失敗しました。

トレースバック(最後の最後の呼び出し):ファイル "/Users/reiot/Documents/Works/appengine-ndb-experiment/ndb/query_test.py"、32行目、testFirst self.assertEqual(len(bars)、len(baz) )AssertionError:3!= 2

はい、逆クエリで境界内のアイテムが欠落しています。

この問題を解決するにはどうすればよいですか?

0 投票する
1 に答える
1360 参照

google-app-engine - KeyProperty オブジェクトには get 属性がありません

NDB モデル タイプの 1 つに を配置し_post_put_hookて、そのタイプのエンティティが配置されるたびに memcache キーが無効になるようにしました。このキーは、設定キーの urlsafe バージョンで構成されています。ただし、このコードを実行すると、次のように表示されます。

関連するモデル クラスは次のとおりです。

アイデア?

0 投票する
2 に答える
885 参照

python - NDBget_by_idを使用して名前空間のエンティティを取得することはできません

次のような名前空間で現在の名前空間の外を読みたいのですが。

ただし、get_by_idは名前空間をパラメーターとして取りません。私は得る:

私は一緒に働くものを手に入れました:

だから今私はただ不平を言っていますが、他の人がこれから利益を得ることができると思いました。:)また、Guidoはこれを監視しているので、get_by_idで名前空間オプションを許可しない理由はありますか?

編集: これはAppEngine1.7.0で可能になりました。