1
我正在使用Deform小部件来显示对象的属性。在我的窗口小部件序列化方法我可以看到我的cstruct是正确的:如何从其字符串引用中检索python对象
serialization cstruct: [<abc.modules.core.models.Assessment object at 0x105583320>]
当试图Jinja2的模板客体的属性如“created_at”结果中显示:
jinja2.exceptions.UndefinedError: 'str object' has no attribute 'created_at'
能有什么我确实将评估对象视为对象而不是Jinja2中的字符串?我相信这很简单,但我仍然无法找出问题所在。请帮忙。更
阿位代码: 架构节点:
class SubcontractorAssessmentSchema(MappingSchema):
""" **Schema definition for ``Subcontractor Assessment`` part.** """
readonly = True
assessments = SchemaNode(String(), widget=LastResultsWidget2(),
title='Assessment:', missing='')
[...]
窗口小部件:
class LastResultsWidget2(SelectWidget):
""" **Widget for Last Results.** """
template = 'last_results'
readonly_template = 'last_results'
strip = True
def serialize(self, field, cstruct, **kw):
"""
Overwritten default serialize of SelectWidget.
:param field: Field
:param cstruct: Value of Widget
:param kw: Additional arguments.
:return: rendered field.
"""
if cstruct in (colander.null, None):
cstruct = self.null_value
# print ('serialization cstruct: ' +str(cstruct))
return field.renderer(self.template, field=field, cstruct=cstruct)
不要'序列化 - 发送对象。并显示你的代码。 – furas
就我所知,这就是它适用于Deform小部件的方式。你不能避免使用小部件序列化。 – Piotr
这个变形0.9吗?你能用完整的追溯和Jinja 2模板来澄清这个错误吗? –