diff --git a/openerp/fields.py b/openerp/fields.py index ae8f4376593..52d594df659 100644 --- a/openerp/fields.py +++ b/openerp/fields.py @@ -319,7 +319,8 @@ class Field(object): self._free_attrs.append(attr) setattr(self, attr, value) - if not self.string: + if not self.string and not self.related: + # related fields get their string from their parent field self.string = name.replace('_', ' ').capitalize() # determine self.default and cls._defaults in a consistent way diff --git a/openerp/models.py b/openerp/models.py index 143ac53ced3..18acf3f38bf 100644 --- a/openerp/models.py +++ b/openerp/models.py @@ -2980,6 +2980,12 @@ class BaseModel(object): if not partial: raise + # update columns (fields may have changed), and column_infos + for name, field in self._fields.iteritems(): + if field.store: + self._columns[name] = field.to_column() + self._inherits_reload() + # group fields by compute to determine field.computed_fields fields_by_compute = defaultdict(list) for field in self._fields.itervalues():