我正在尝试设置一个调试页,其中包含对象、对象属性名和对象属性值的列表。我试图获取特定对象类型的特定属性的值。在编写代码时,对象类型和属性都不知道。在
以下是我的相关章节:
在我的测试.py在
if self.request.get('objID'):
qGet = self.request.get
thisObj = db.get(db.Key(qGet('objID')))
template_values = { 'thisObj' : thisObj }
template = JINJA_ENVIRONMENT.get_template('objProp.html')
self.response.write(template.render(template_values))
在我的objProp.html文件模板
^{pr2}$但是,由于thisObj中没有属性p,所以它总是输出一个空值,实际上就是我想要的,所以打印出在循环的那个特定点p所引用的任何属性的值
任何帮助都将不胜感激!在
您不应该使用}不是循环中的p,而是试图引用名为“p”的属性或方法。在
thisObj.p
,因为您没有在thisObj
中查找名称。^此实例中的{你应该用
getattr(thisObj,p)
这是我开始工作的方法。我不会接受它,因为我还不相信它是一个“好”的方法。在
另请参见:Google App Engine: how can I programmatically access the properties of my Model class?
这个问题让我大开眼界,下面是我正在使用的,它似乎正常工作:
看起来p解析为一个字符串,
thisObj.properties()[p]
返回object属性,然后我只需要用.get_value_for_datastore(thisObj)
从该对象中获取值引用自此处的文档:The Property Class
相关问题 更多 >
编程相关推荐