Как получить объект Python из его ссылки на строку

Я использую виджеты Deform для отображения атрибута объекта. В моем методе сериализации виджета я вижу, что мой cstruct правильный:

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

При попытке отобразить в шаблоне jinja2 свойство objet, например, "made_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='')

[...]

Widget:

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)

1 ответ

Это была ошибка в этой определенной версии Colader. Это заставляло виджет вести себя как синглтон. Спасибо за все ваши советы!

Другие вопросы по тегам