检查Cheetah模板字典是否包含键
我正在尝试为一个应用程序创建一个基础模板,其中一个目标是去掉页面上不必要的js和css。所以我想在Cheetah模板中做一些事情,比如
#if $dict.has_key('datepicker'):
<link rel="stylesheet" href="$datepicker" type="text/css" />
#end if
我觉得这样做也能帮助解决一些错误,比如namemap没有'日期选择器'这个键
我现在使用WSGIHandler时遇到的错误是
TypeError: descriptor 'has_key' requires a 'dict' object but received a 'str'
我觉得这可能跟我把处理器的返回值转换成字符串有关,但模板不应该在变成字符串之前就被解析吗?
t = Template(file=WORKSPACE_PATH+"/tmpl/posts.html", searchList=[tmpldict])
self.response_body = str(t).encode('utf8')
return str(t)
1 个回答
1
这个问题是这样的:
dict.has_key('datepicker')
“dict”是一个类,所以“dict.has_key”的第一个参数应该是一个“dict”的实例。
你传入的是一个字符串,而不是一个字典对象。
简单来说,“d.has_key(k)”就相当于“dict.has_key(d, k)”,而你用的是后者。