コマンドラインからpythonを起動して次のように入力すると:
import random
print "Random: " + str(random.random())
それは私に乱数を出力します(期待、優れています)。
上記の 2 行を django アプリケーションの models.py に含めて、django アプリを runserver で起動すると、コマンド ラインに出力が表示され、乱数が表示されます (すばらしい!)。
それ以外の場合は完全に正常に機能するカスタムタグを使用する場合、
import random
print "Random: " + str(random.random())
カスタム タグの .py ファイルの最初の 2 行のように、そのカスタム タグを使用するテンプレートを開こうとするとエラーが発生します。
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 と呼ばれるフィルターがあり、どういうわけかシステムの random よりも優先されています。
適切なpythonランダムを明示的にインポートする方法を誰かが推奨できますか?