title: add/modify blocks value in wagtail streamfield from shell
body: <p>I have a page with one StreamField body and a custom block named HeadingBlock:</p>
  
  <pre><code>class HeadingBlock(blocks.StructBlock):
      heading = blocks.CharBlock()
      cssid = blocks.CharBlock()
      ...
  
  class CustomPage(Page):
      ...
      body = StreamField([
          ('heading', HeadingBlock()),
      ...
  </code></pre>
  
  <p>I need to add new charblock to heading attribute of HeadingBlock, but using shell:</p>
  
  <pre><code>&gt;&gt;&gt; from custom.models import CustomPage
  &gt;&gt;&gt; c = CustomPage.objects.all()[0]
  &gt;&gt;&gt; c.body[0].heading.value = "hello world" ??? this does not work
  </code></pre>
  
  <p>Anyone can help? thanks a lot!</p>
  
  <p>EDIT:
  I simplified the HeadingBlock, removing ListBlock and tried:</p>
  
  <pre><code>&gt;&gt;&gt; c.body[0].value
  StructValue([('heading', u'hi'), ('cssid', u'man')])
  &gt;&gt;&gt; type(c.body[0].value)
  &lt;class 'wagtail.wagtailcore.blocks.struct_block.StructValue'&gt;
  &gt;&gt;&gt; from wagtail.wagtailcore.blocks.struct_block import StructValue
  &gt;&gt;&gt; c.body[0].value = StructValue([('heading', u'hello'), ('cssid', u'world')])
  &gt;&gt;&gt; c.save()
  </code></pre>
  
  <p>but when i go in admin interface, the fields are empty.
  I tried:</p>
  
  <pre><code>&gt;&gt;&gt; c.body[0].block.child_blocks
  OrderedDict([('heading', &lt;wagtail.wagtailcore.blocks.field_block.CharBlock object at 0x7f4c2aaf9790&gt;), ('cssid', &lt;wagtail.wagtailcore.blocks.field_block.CharBlock object at 0x7f4c2aaf9a90&gt;)])
  &gt;&gt;&gt; c.body[0].block.child_blocks['heading']
  &lt;wagtail.wagtailcore.blocks.field_block.CharBlock object at 0x7f4c2aaf9790&gt;
  &gt;&gt;&gt; c.body[0].block.child_blocks['heading'].value
  Traceback (most recent call last):
    File "&lt;console&gt;", line 1, in &lt;module&gt;
  AttributeError: 'CharBlock' object has no attribute 'value'
  </code></pre>
  
  <p>Nothing happen, i do not think this is so difficult :-|</p>