如果我从命令行开始使用Python并输入以下内容:
作为自定义标签.py文件的前两行,每当我尝试打开使用该自定义标签的模板时,就会出现错误:
请记住,如果我删除这两行,则我的自定义标签将按预期方式运行,不会出现错误。不幸的是,我需要在模板标记内部进行一些随机行为。
问题在于,如果在自定义标记中执行以下操作:
在一个自定义模板标签中,它导入了。
import random
print "Random: " + str(random.random())
它会输出一个随机数(预期的,很好)。
如果我在我的Django应用程序的models.py中包含以上两行代码,并使用runserver启动我的Django应用程序,我将在命令行上看到输出一个随机数(太棒了!)
但是,如果我使用一个本来完全正常的自定义标签,但是我在其中包含
import random
print "Random: " + str(random.random())
作为自定义标签.py文件的前两行,每当我尝试打开使用该自定义标签的模板时,就会出现错误:
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'>
通常情况下,from导入模块可以从任何地方导入。
Django模板库有一个名为random的过滤器,但不知何故,它优先于系统的随机函数。
是否有人能推荐如何显式导入正确的python随机函数?
from random import random
- jfsimport numpy.random as randMe
。 - Black Diamond