This question has been flagged
1 Reply
4057 Views

Hi,

for example in sale.order.line model we have price_unit field, but in front view we see "Unit Price"

price_unit = fields.Float('Unit Price', required=True, digits=dp.get_precision('Product Price'), default=0.0)

How to pull out this text through a python? such as such 

test = self.env['sale.order.line'].browse(1).price_unit.string

and in test variable will be "Unit Price"

Avatar
Discard
Best Answer

The field label is stored in the model ir.model.fields. You can find a definite object by its name and related model. An example:

field_id = self.env["ir.model.fields"].sudo()._search([
("name", "=", "price_unit"),
("model", "=", "sale.order.line")
], limit=1)
label = field_id and field_id.field_description or "Not defined"

Take into account that the name would be shown in the SuperUser language. In order to show it a different language you should pass the context with a required lang code.

Avatar
Discard

field_id.with_context(lang='ru_RU').field_description - should work.

Better use English: otherwise the question might be closed by others.

Author

nice, a million thanks to you

I did not close the question, but deleted the russian comment :-)