Ich versuche, ein FunktionsfeldOdoo Funktionsfeld
class base_candidat_specialite(osv.osv):
""" Spécialité du candidat """
_name = "base.candidat.specialite"
_description = "Spécialité du candidat"
_columns = {
'name': fields.char('Name', required=True),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of degrees."),
}
_defaults = {
'sequence': 1,
}
_sql_constraints = [
('name_uniq', 'unique (name)', 'Le nom de la specialité doit etre unique')
]
class base_candidat(osv.osv):
_name = 'base.candidat'
def _application(self, cr, uid, ids, fields, arg, context=None):
res = {}
_candidat = self.pool.get('base.candidat')
candidat = _candidat.browse(cr, uid, ids[0], context=context)
_application = self.pool.get('hr.applicant')
if candidat:
for _obj in self.browse(cr, uid, ids, context=context):
_applications = _application.search(cr, uid, [('email_from', '=', candidat.email_candidat)], context=context)
res[_obj.id] = [(6, 0, _applications)]
return res
_colunms{
'candidat_name': fields.char('Candidat', size=128, required=True),
'active': fields.boolean('Active', help="If a candidat is not active, it will not be displayed in module"),
'blacklist': fields.boolean('Blacklist'),
'email_candidat': fields.char('Email', size=32),
'mobile': fields.char('Mobile', size=32),
'description': fields.text('Description'),
'probability': fields.float('Probability'),
'create_date': fields.datetime('Creation Date', readonly=True, select=True),
'write_date': fields.datetime('Update Date', readonly=True),
'date_closed': fields.datetime('Closed', readonly=True, select=True),
'date_open': fields.datetime('Assigned', readonly=True, select=True),
'date_action': fields.date('Next Action Date'),
'title_action': fields.char('Next Action', size=64),
'reference': fields.char('Referred By'),
'user_id': fields.many2one('res.users', 'Responsable'),
'specialite': fields.many2one('base.candidat.specialite', 'Specialite'),
'liensource': fields.char('Lien Source'),
'type_id': fields.many2one('hr.recruitment.degree', 'Niveau de formation'),
'niveau_experience': fields.many2one('hr.recruitment.degree', 'Niveau d"experience'),
'source_id': fields.many2one('hr.recruitment.source', 'Source'),
'categ_ids': fields.many2many('hr.applicant_category', string='Tags'),
'candidature_ids': fields.function(_application, string="Candidature", type="one2many", relation='hr.applicant'),
}
Fehler zu erstellen, die auf die Schaffung einer Aufzeichnung
ProgrammingError: ARRAY types integer and boolean cannot be matched LINE 1: ...bourkia', 'abourkiakhadija', true, ARRAY[ARRAY[6, false, '{}...
Vielen Dank für Ihre Erklärung. Ich denke, ich sollte einfach eine ID-Liste zurückgeben, und da das Feld ein many2many mit 'hr.applicant' Beziehung ist, werde ich die Werte für die anderen Felder bekommen (das ist, was ich verstehe PS: bin ein Anfänger in Entwicklung und vor allem Python odoo) – Khadija
Ich freue mich dafür :) Wenn Sie meine Antwort hilfreich finden, bitte geben Sie mich auf! Andere: Vielleicht funktioniert es richtig, aber Sie nehmen eine DB-Suche in einer for-Methode! Wenn du viele Einträge in "hr.applicant" hast, dann funktioniert das sehr langsam! ** In deinem Fall sammle ich zuerst die relevanten E-Mails und mache dann die Suche wie folgt: '[('email_from', 'in ', E-Mails)] '_ (E-Mails sind eine Liste) _ –