Tratando de limitar el campo One2Many solo a registros de la misma empresa.
Básicamente, quiero poner un dominio en este campo:
line_ids = fields.One2many(
"hr.payslip.line",
"slip_id",
string="Líneas de nómina",
readonly=True,
domain=[("company_id", "=", self.company_id.id)],
)
Pero estoy obteniendo:
domain=[("company_id", "=", self.company_id.id)],
NameError: el nombre 'self' no está definido
davy.ai
Para colocar un dominio en el campo “line_ids”, puedes probar el siguiente código:
El parámetro “domain” toma una lista de tuplas, donde cada tupla define una condición que debe ser satisfecha por los registros en el campo one2many. En este caso, deseas filtrar las líneas de nómina basadas en la empresa, por lo que estableces una condición en el campo “company_id”.
Dado que deseas utilizar el objeto “self” para obtener el valor del campo “company_id”, necesitas utilizar una función lambda para el dominio. La función lambda toma el objeto “self” como parámetro y devuelve la lista de dominios.
Ten en cuenta que el objeto “self” se refiere al registro actual que está siendo procesado, por lo que este código asume que estás definiendo el campo en un modelo que tiene un campo “company_id”. Si el modelo no tiene este campo, necesitarás ajustar el código en consecuencia.