我想在Many2one字段中检索模型记录的所有值。我不知道用电脑能不能做到。
我的类I想要恢复值:
class ResPartner_school(models.Model):
_name = 'ecole.partner.school'
_order = 'id desc'
school_name = fields.Many2one(comodel_name="ecole.establishment.webservice",
string="Etablissement Scolaire",
default=1)
school_level = fields.Many2one(comodel_name="ecole.establishment.webservice",
string="Niveau Scolaire",
compute="_get_level")我的另一个类:
class SchoolEstablishmentWebServices(models.Model):
_name = 'ecole.establishment.webservice'
_rec_name = "establishment_name"
establishment_name = fields.Many2one(comodel_name="horanet.school.establishment", string="Etablissement Scolaire")
id_establishment = fields.Char(string='idEtablissement')
grade_name = fields.Many2one(comodel_name="horanet.school.grade", string="Niveau Scolaire")
id_class = fields.Char(string='idClasse')我的类ResPartner_school中的函数:
@api.multi
def _get_level(self):
school_level = self.school_name.grade_name
return school_level如何从类SchoolEstablishmentWebServices的grade_name字段中检索所有值
发布于 2018-08-27 16:46:26
显示“所有”数据(取决于有多少数据)的一种解决方案是使用两种变体覆盖模型的name_get()。
基于上下文的
name_get()首先覆盖模型ecole.establishment.webservice的name_get()
class SchoolEstablishmentWebServices(models.Model):
_name = 'ecole.establishment.webservice'
@api.multi
def name_get(self):
res = []
for webservice in self:
if 'full_name' in self.env.context:
res.append((webservice.id, webservice.get_full_name()))
else:
res.append((webservice.id, webservice.establishment_name))
return res
def get_full_name(self):
# example logic
self.ensure_one()
full_format = "{establishment}, {grade}"
return full_format.format(
establishment=self.establishment_name, grade=self.grade_name)然后您需要将值full_name放入上下文中。您可以将其添加到字段本身,这不会有那么好的效果。最好将该值放入菜单操作的上下文中,该菜单用于显示'ecole.partner.school'条目。
<record id="my.list.action.for.school" model="ir.actions.act_window">
<field name="name">my.action</field>
<!-- and so on -->
<field name="context">{'full_name': 1}</field>
</record>https://stackoverflow.com/questions/52005767
复制相似问题