2016-12-12 3 views
1

Я использую виджеты 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) 
+0

don 'serialize - отправить объект. И покажите свой код. – furas

+0

Ну, насколько я знаю, так оно и работает для виджетов Deform. Вы не можете избежать сериализации с помощью виджетов. – Piotr

+0

Является ли эта деформация 0,9? Можете ли вы прояснить ошибку с полным отслеживанием и шаблоном Jinja 2, где это происходит? –

ответ

0

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

Смежные вопросы