1

GAE上のアプリケーションのエンドユーザーに表示するために、フロートにコンマを追加しようとしています。数値はjsonから取得され、それぞれ2回の10項目クエリの一部です(ページビューごとに20個の数値)。たとえば。

"total_reach": 276160.0, "total_reach": 500160.0 

Python GAE SDK 1.7.3テンプレートシステムを使用していて、エンドユーザーにカンマで数字を表示したいだけです(例:276,160および500,160)。私はデフォルトのwebbapp2と標準のテンプレート(google.appengine.ext.webappインポートテンプレートから)を使用していることに注意してください。これは、私が理解しているように、Djangoに基づいています。

Django floatformatは小数を取り除くのに最適ですが、ここでコンマを追加する必要があります。Djangoのヒューマナイズは、intcommaフィルターで完璧に見えます。しかし、それを有効にする方法がわかりません。私はそのクレイジーでシンプルだと思います、そして私は密集しています(そしてPythonに慣れていません)-しかし私はアイデアがありません。

私はさまざまなことを試しましたが、最も最近の有望なものは(ソースの私の理解に基づいて):

from google.appengine.ext.webapp.template import register_template_library
register_template_library('django.contrib.humanize.templatetags.humanize')

それは私に次の500を与えました:

No module named django.contrib.humanize.templatetags

しかし、それはソースにあるようです。

私はとても途方に暮れています。私は周りを検索して、このようなアイテムが機能せず、(webapp2ではなく)webappを対象としているように見えるものを見つけました。助けてくれてありがとう!

アップデート:

settings.pyアプローチを使用してそれを実行できませんでした。結局、自分で解決しました。私の機能的ですが理想的ではない解決策については、以下を参照してください。

4

2 に答える 2

0

settings.pyアプローチを使用してそれを実行できませんでした。結局、私はこの答えの変形を使用しました。ここからソースコードを複製し、humanize.pyファイルの先頭にあるさまざまなDjangoインポートを次のように置き換えました

from google.appengine.ext import webapp

register = webapp.template.create_template_register() 

次に、main.pyに追加しました。

template.register_template_library('tags.humanize')

次に、テンプレートで、期待どおりにフィルターを追加しました(例:item.count | intcomma)。これは「ベストプラクティス」ではないと思いますが、うまくいきました。

于 2012-11-15T05:27:41.597 に答える
0

django.contrib.humanizeファイルに追加しなかったINSTALLED_APPSと思いsettings.pyます。

于 2012-11-08T14:50:16.580 に答える