2016-12-12 113 views
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) 
+0

不要'序列化 - 发送对象。并显示你的代码。 – furas

+0

就我所知,这就是它适用于Deform小部件的方式。你不能避免使用小部件序列化。 – Piotr

+0

这个变形0.9吗?你能用完整的追溯和Jinja 2模板来澄清这个错误吗? –

回答

0

正是withi此某些Colader版本错误。它迫使小部件表现得像单身一样。感谢您的所有提示!

相关问题