python - 在关系字段odoo 10的计算中检索字段值
问题描述
我想在一个Many2one
字段中检索一个模型的记录的所有值。不知道用电脑能不能。
我的班级我想恢复价值:
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
如何从grade_name
类的字段中检索所有值SchoolEstablishmentWebServices
?
解决方案
显示“所有”数据(取决于有多少数据)的一种解决方案是覆盖name_get()
具有两个变体的模型。
- 基于变体的上下文
name_get()
首先覆盖name_get()
模型ecole.establishment.webservice
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>
- 非基于上下文的变体 -> 它与变体 1 相同,根本不使用上下文。它将是系统范围的,不仅在您想要的位置。这是更简单的变体。
推荐阅读
- php - 如何将参数从控制器索引函数传递给模型的函数?拉拉维尔
- nativescript - Nativescript 没有检测到我自己包含的库 jar
- java - 如何在类似于 Tabs App 的 android 中根据时间自动滚动内容
- python - 如何随机抽取分类列
- android - android jetpack 导航仪器测试在返回导航上失败
- git - 回购:致命:无法在'pathtools/testdata/escapes/**'创建目录:无效参数/> rsync错误:未传输某些文件/属性
- java - 让 Java 和持久化 Python 通信
- python - 多处理进程与单个 Pool.apply
- python - 与此 python 片段等效的 openssl AES-CFB-128 命令行是什么?
- angular - 搜索字符串角打字稿的一部分