2011-07-11 4 views
1

jsonを使用してweb2pyに問い合わせています。返されるjsonオブジェクトにフラッシュメッセージを追加したいと思います。デフォルトではweb2pyはjsonオブジェクトをページ内で使用される変数のみに変換します。この問題を解決する方法の1つは、私が返すすべてのdictオブジェクトにフラッシュメッセージを手動で追加することです。これは常に実行可能ではない可能性があります。jsonでフラッシュメッセージを追加する、web2py

私は単純な辞書レンダリングjsonを使用しています。事前

答えて

1

UPDATEDでの応答のための

感謝:

あなたのJSONを返すようにgeneric.jsonビューを使用して、返されるJSONでフラッシュメッセージを含めるようにそのビューにコードを追加することができます。

{{from gluon.serializers import json}} 
{{response._vars.update(flash=response.flash)}} 
{{=XML(json(response._vars))}} 

一般的なビューはデフォルトで無効になっていますので、汎用のJSONビューをresponse.generic_patterns=['json']で明示的に有効にする必要があります(必要があれば、それはJSONを返すことを意図していないリクエストに対して利用可能であり、公開されることを意図しないビューに返されたデータを公開するために使用することができます)。 response.view='generic.json'によって、generic.json(または指定したい名前)を明示的に指定することもできます。

+0

「response._vars.update(flash = response.flash)」というステートメントを追加する必要がありますか? – w2lame

+0

申し訳ありません、私はgeneric.jsonの古いバージョンを見ていました。私は上記の答えを更新しました。上記のコードを/views/generic.jsonに入れてみてください。 – Anthony

+0

ほとんどの関数ではdict要素を返すので、変数としてフラッシュメッセージを追加するのは、辞書にもう一つの要素を追加するのと同じくらい良いことです。以前は 'return dict(list = list)'だった場合は 'return ' –

関連する問題