如果我从命令行启动 python 并输入:
import random
print "Random: " + str(random.random())
它给我打印了一个随机数(预期,非常好)。
如果我在我的 django 应用程序的 models.py 中包含上述两行并使用 runserver 启动我的 django 应用程序,我会在命令行上看到一个随机数的输出(太棒了!)
如果我采用自定义标签,否则效果很好,但我包括
import random
print "Random: " + str(random.random())
作为自定义标记的 .py 文件的前 2 行,每当我尝试打开使用该自定义标记的模板时都会收到错误消息:
TypeError at /help/
'module' object is not callable
请记住,如果我去掉这两行,我的自定义标签的行为与预期相同,并且不会引发错误。不幸的是,我的模板标签内需要一些随机行为。
问题是如果在自定义标签中我这样做:
import random
在自定义模板标签上,它导入
<module 'django.templatetags.random' from '[snip path]'>
并不是
<module 'random' from 'C:\\Program Files\\Python26\\lib\\random.pyc'>
通常是从其他地方进口的
Django 模板库有一个称为随机的过滤器,不知何故,它的优先级高于系统的随机。
任何人都可以推荐如何显式导入正确的 python 随机数吗?