2017-02-07 12 views
0

У меня есть вопрос, где у меня есть StrictBlock в StreamField:StructBlock в StreamField отображается как текст

class DetailsTableBlock(StructBlock): 
    title = CharBlock(required=False) 
    description = RichTextBlock(required=False) 
    table = TableBlock(template="home/blocks/table.html") 

class MainStreamBlock(StreamBlock): 
    .... 
    table = DetailsTableBlock() 

Проблема возникает, когда я пытаюсь сделать таблицу с помощью:

{{ child.value.table }}

все это я получаю:

{u'data': [[u'test', u'test', u'test'], [u'123', u'asd', u'asd'], [u'123', u'asd', u'asd']], u'first_row_is_table_header': True, u'first_col_is_header': False}

Итак, вопрос в том, как я могу визуализировать html с помощью StructBlock внутри StreamField? Я использую трясогузка 1.7

ответ

2

Вы должны использовать: {{ child.value.bound_blocks.table }}

Полное объяснение дается в http://docs.wagtail.io/en/v1.8.1/topics/streamfield.html#boundblocks-and-values, но короче: когда вы зацикливание над содержанием StreamField на выходе, вы будете иногда получать значение необработанных данных, а иногда и получить объект BoundBlock, который знает как значение, так и как его отображать как HTML. Когда вы получаете доступ к дочерним значениям StructBlock, вы получаете необработанные значения (так как это обычно более полезно для доступа внутри шаблона StructBlock) - для получения объекта BoundBlock, вы должны прочитать его из словаря StructBlock bound_blocks.

+0

Еще раз спасибо за подробное объяснение. bound_blocks работал как шарм –

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

  • Нет связанных вопросов^_^