diff --git a/openerp/addons/base/ir/ir_ui_view.py b/openerp/addons/base/ir/ir_ui_view.py
index fca4e089ae3..45a2e40d04f 100644
--- a/openerp/addons/base/ir/ir_ui_view.py
+++ b/openerp/addons/base/ir/ir_ui_view.py
@@ -754,7 +754,7 @@ class view(osv.osv):
if e.attrib.get('data-oe-model'):
# if a branded tag containg branded tag distribute to the childs
child_text = "".join([etree.tostring(x, encoding='utf-8') for x in e])
- if re.search('(data-oe-model=|t-esc=|t-raw=)',child_text):
+ if re.search('(data-oe-model=|t-esc=|t-raw=|t-field=)',child_text):
for i in branding_copy:
if e.attrib.get(i):
branding_dist[i] = e.attrib.get(i)
diff --git a/openerp/tools/qweb.py b/openerp/tools/qweb.py
index 8bd1371e8c5..221bf138e28 100644
--- a/openerp/tools/qweb.py
+++ b/openerp/tools/qweb.py
@@ -276,4 +276,20 @@ class QWebXml(object):
v[t_att["set"]] = self.render_element(e, t_att, g_att, v)
return ""
+ def render_tag_field(self, e, t_att, g_att, v):
+ """ eg: +1 555 555 8069"""
+ record = v[t_att["record"]]
+
+ if record._model._columns.get(t_att["field"])._type == 'many2one':
+ inner = cgi.escape(str(getattr(record, t_att["field"]).name_get()[0][1]))
+ else:
+ inner = cgi.escape(str(getattr(record, t_att["field"])))
+
+ if e.tagName != 't':
+ # are escaped
+ g_att += ' %s="%s"' % ('data-oe-model', record._model._name)
+ g_att += ' %s="%s"' % ('data-oe-id', str(record.id))
+ g_att += ' %s="%s"' % ('data-oe-field', t_att["field"])
+ return self.render_element(e, t_att, g_att, v, inner)
+
# leave this, al.