で使用する場合、「『モジュール』オブジェクトは呼び出し可能ではありません」原因:Pythonのはrandom.Random()私は、コマンドラインおよびタイプからのpythonを起動する場合は、カスタムテンプレートタグ
import random
print "Random: " + str(random.random())
それは乱数(私を印刷します期待、優秀)。
私は私のDjangoアプリケーションのmodels.pyで上記の2行を含めると、私は私の乱数を示すコマンドラインで出力を得る(グレートを!)のrunserverと私のDjangoのアプリを起動私が取る場合
場合私はそのカスタムタグを使用したテンプレートを開くしようとしたときにそれ以外の場合は完全に正常に動作しますが、私は、カスタムタグのの.pyファイルの最初の2行として
import random
print "Random: " + str(random.random())
を含めるカスタムタグは、私はエラーを取得します:
TypeError at /help/
'module' object is not callable
これらの2行を取り除くと、私のカスタムタグは期待したように動作し、エラーはスローされないことに注意してください。残念ながら、私はテンプレートタグ内でランダムな動作が必要です。
私はカスタムタグであれば、問題がある:カスタムテンプレートタグの
import random
、それが正常にインポートされるよう
<module 'django.templatetags.random' from '[snip path]'>
なく
<module 'random' from 'C:\\Program Files\\Python26\\lib\\random.pyc'>
をインポートどこからでも
Djangoテンプレートライブラリにはrandomと呼ばれるフィルタがあり、システムのランダムよりも優先されています。
誰も明示的に正しいpythonをインポートする方法をお勧めできますか?
try: 'from random import random' – jfs