如何从python对象的字符串引用中检索python对象

2024-09-29 00:12:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用变形小部件来显示对象的属性。在我的小部件序列化方法中,我可以看到我的cstruct是正确的:

serialization cstruct: [<abc.modules.core.models.Assessment object at 0x105583320>]

当试图在jinja2模板中显示对象的属性时,例如“created\u 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)

Tags: 对象selfjinja2field属性objectparam部件