Я использую виджеты Deform для отображения атрибута объекта. В моем методе виджет сериализации я могу видеть, что мой cstruct правильно:Как получить объект python из его ссылки на строку
serialization cstruct: [<abc.modules.core.models.Assessment object at 0x105583320>]
При попытке отобразить в шаблоне jinja2 в Objet в собственности, например, «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='')
[...]
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)
don 'serialize - отправить объект. И покажите свой код. – furas
Ну, насколько я знаю, так оно и работает для виджетов Deform. Вы не можете избежать сериализации с помощью виджетов. – Piotr
Является ли эта деформация 0,9? Можете ли вы прояснить ошибку с полным отслеживанием и шаблоном Jinja 2, где это происходит? –