python - ValueError 预期的单例 many2many 字段
问题描述
professor class
{# - - 编码:utf-8 - - from odoo import fields, models, api from datetime import datetime
class GiProfesseur(models.Model):
_name = "gi.professeur"
_inherit = ['mail.thread']
_description = "Professeur du département de Genie Industriel"
_rec_name = 'combination'
nom = fields.Char(string='Nom', required=True)
prenom = fields.Char(string='Prenom', required=True)
numero_de_carte_nationale = fields.Char(string='Numéro de carte nationale', required=True)
sexe = fields.Selection([('Masculin','Masculin'),('Féminin','Féminin')], required=True)
date_de_naissance = fields.Date('Date de naissance' , required=True)
Wilaya_de_residence = fields.Char(string='Wilaya de naissance', required=True)
adresse = fields.Text(string='Adresse')
specialite = fields.Many2many('gi.specialite', string="Spécialité", required=True)
classroom = fields.Many2many('gi.classroom', string="Groupe")
grade = fields.Char(string='Grade',)
position = fields.Text(string='Position')
date_recruitment = fields.Date("Date de recruitment", required=True, readonly=True, default=datetime.now().date())
adresse_Email = fields.Text(string='Adresse E-mail', required=True)
telephone = fields.Char(string='Téléphone', required=True)
image = fields.Binary(string='Image')
combination = fields.Char(string='Combination', compute='_compute_fields_combination')
@api.depends('nom', 'prenom')
def _compute_fields_combination(self):
for Professeur in self:
Professeur.combination = Professeur.nom + ' ' + Professeur.prenom}
classroom class
{# - - 编码:utf-8 - - from odoo import fields, models, api , _
class GiClass(models.Model):
_name = "gi.classroom"
_inherit = ['mail.thread']
_description = "les classroom du département de Genie Industriel"
_rec_name = 'nom'
nom = fields.Char(string='Code du grupe', required=True)
etudiants = fields.One2many('gi.etudiant', 'classroom', string='Etudiants')
professeurs = fields.One2many('gi.professeur', 'classroom', string='Professeurs')
cours = fields.One2many('gi.cours', 'classroom', string='Etudiants')
examens = fields.One2many('gi.cours', 'classroom', string='Examens')
num = fields.Char(string='Numéro du classroom', required=True)}
当我在教授课上增加两三个教室时
classroom = fields.Many2many('gi.classroom', string="Groupe")
我收到这个错误
ValueError: Expected singleton: gi.classroom(12, 13)
解决方案
在您的gi.professeur
模型中:您希望与gi.classroom
.
但是在您的gi.classroom
模型中:您与gi.professeur
.
为了使其保持一致,您要么必须更改
professeurs = fields.One2many('gi.professeur', 'classroom', string='Professeurs')
至
professeurs = fields.Many2many('gi.professeur', 'classroom', string='Professeurs')
在你的gi.classroom
模型中。
或者
改变
classroom = fields.Many2many('gi.classroom', string="Groupe")
至
classroom = fields.Many2one('gi.classroom', string="Groupe")
在你的gi.professeur
模型中。
Tl;DR
你必须使gi.classroom
和gi.professeur
关系保持一致。
推荐阅读
- android - Andorid Here Maps:致命信号 11 (SIGSEGV),代码 1 (SEGV_MAPERR),
- rust - 我可以在 Rocket 中使用异步 fn 作为处理程序吗?
- javascript - React-Intl:带数组的 I18n
- javascript - 单击导航栏中的“a”元素会卡在触摸模式下,但可以正常工作
- opencv - opencv4android的相机焦点
- javascript - 数组连接问题
- python - dnspython 中的服务器名称可达性
- google-chrome - 从 VM 到本地计算机的 IndexedDB 副本
- javascript - 在触发来自代码隐藏的页面加载事件之前,如何在页面加载时将会话存储值传递到文本框中
- sparql - 这些使用 sh:or 的形状图有什么区别?