diff --git a/openerp/tools/qweb.py b/openerp/tools/qweb.py index edae665ddfc..7b19666f5e6 100644 --- a/openerp/tools/qweb.py +++ b/openerp/tools/qweb.py @@ -280,16 +280,22 @@ class QWebXml(object): """ 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"]))) + inner = "" + try: + if record._model._columns.get(t_att["field"])._type == 'many2one': + field = getattr(record, t_att["field"]) + if field: + inner = cgi.escape(str(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"]) + except AttributeError: + _logger.warning("t-field no field %s for model %s", t_att["field"], record._model._name) - 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.