0

シンプルなUbuntu/django / apacheサーバーをセットアップしましたが、Djangoテンプレートに表示したい数値の一部をフォーマットするのに問題があります。Djangoテストサーバーを使用してコードをローカルで(つまり、作業用マシンで)実行すると、すべてが問題なくフォーマットされます。

同様に、サーバーでIDLEを開くと、次のことができます。`

>>>ロケールのインポート

>>> locale.setlocale(locale.LC_ALL、'')

'en_US.UTF-8'

>>>'{0:n}'。format(42424242)

'42、424、242' `

ただし、Apacheサーバーを実行してコードをライブでテストしようとすると失敗し、次のような出力が得られます。

'42424242'

印刷ステートメントを前に追加しました

locale.setlocale(locale.LC_ALL、'')

私のview.pyファイルにある呼び出しとapacheエラーログで見つけたのは

[2012年7月24日火曜日15:26:56][エラー]C

apacheプロセスにネイティブロケール設定にアクセスするためのアクセス許可がない可能性がありますか?

4

2 に答える 2

1

明示的に呼び出すことで問題を解決することができました

locale.setlocale(locale.LC_ALL、'en_US.UTF-8')

ローカル設定が「en_US.UTF-8」であるため、en_US.UTF-8パラメーターがないと機能しなかった理由がわかりません。apacheプロセスがコードを実行するときに明示的な呼び出しを使用する必要がある理由を誰かが知っているが、他の場所でテストしているときはそうではない場合、私はまだ答えに興味がありますが、これを解決済みとしてマークします。

于 2012-07-30T18:28:56.020 に答える
1

デフォルトのロケールでは位置情報が提供されないため、これはバグです。あなたはここでもっと読むことができます:

https://code.djangoproject.com/ticket/5846
于 2014-06-22T09:16:34.840 に答える