'Compile something like ``<span t-field="record.phone">+1 555 555 8069</span>``'

def _compile_directive_field(self, el, options):

    node_name = el.tag
    assert (node_name not in ('table', 'tbody', 'thead', 'tfoot', 'tr', 'td', 'li', 'ul', 'ol', 'dl', 'dt', 'dd')), ('RTE    widgets    do    not    work    correctly    on    %r    elements' % node_name)
    assert (node_name != 't'), 't-field    can    not    be    used    on    a    t    element,    provide    an    actual    HTML    node'
    assert ('.' in el.get('t-field')), "t-field    must    have    at    least    a    dot    like    'record.field_name'"
    expression = el.attrib.pop('t-field')
    field_options = self._compile_widget_options(el, 'field')
    (record, field_name) = expression.rsplit('.', 1)
    return ([ast.Assign(targets=[ast.Tuple(elts=[ast.Name(id='t_attrs', ctx=ast.Store()), ast.Name(id='content', ctx=ast.Store()), ast.Name(id='force_display', ctx=ast.Store())], ctx=ast.Store())], value=ast.Call(func=ast.Attribute(value=ast.Name(id='self', ctx=ast.Load()), attr='_get_field', ctx=ast.Load()), args=[self._compile_expr(record), ast.Str(field_name), ast.Str(expression), ast.Str(node_name), ((field_options and self._compile_expr(field_options)) or ast.Dict(keys=[], values=[])), ast.Name(id='options', ctx=ast.Load()), ast.Name(id='values', ctx=ast.Load())], keywords=[], starargs=None, kwargs=None))] + self._compile_widget_value(el, options))
