I created the model Z_MecialHistory to store information of the patient (*date, patient and healthprofessional*) and it is related to the model PatientData. The point is that, as Albert said, I need to access to the information in the model PatientEvaluation.
After adding the function field Albert recommended to the model PatientEvaluation .... z_medical_history = fields.Function(fields.Many2Many( 'gnuhealth.z_medical_history', None, None, 'Historial Medico del Paciente'), 'get_z_medical_history') ... I added the following function to PatientEvaluation model guessing that I had to use the current patient .... def get_z_medical_history(self, name): pool = Pool() Patient = pool.get('gnuhealth.patient') return Patient.z_medical_history But it doesnt work... I dont really understant how to the get function should be coded to worrk... And got the following error... El miércoles, 3 de mayo de 2017, 8:46:36 (UTC+1), Albert Cervera i Areny escribió: > > 2017-05-03 4:23 GMT+02:00 Carlos Ibrahim Arias <brai...@gmail.com > <javascript:>>: > > Hi! I'm having problems using a one2many field on another model > different > > from the class it was created on. I tried to use a many2many field so > that I > > can view the related fields but cant make it work > > > > This is the first class... > > > > class Z_MedicalHistory(ModelSQL, ModelView): > > > > 'Patient Medical History' > > __name__ = 'gnuhealth.z_medical_history' > > > > medical_history_date = fields.DateTime('Date and Time', > required=True) > > > > healthprof = fields.Many2One( > > 'gnuhealth.healthprofessional', 'Health Prof', > > select=True, required=True, help='Health Professional') > > > > patient = fields.Many2One( > > 'gnuhealth.patient', 'Patient', > > select=True, required=True, help='Patient Name') > > > > comments = fields.Text('Comments', required=True) > > > > @staticmethod > > def default_medical_history_date(): > > return datetime.now() > > > > @staticmethod > > def default_healthprof(): > > pool = Pool() > > HealthProfessional = pool.get('gnuhealth.healthprofessional') > > return HealthProfessional.get_health_professional() > > > > > > @staticmethod > > def default_patient(): > > pool = Pool() > > Patient = pool.get('gnuhealth.patient') > > return Patient.name > > > > > > I added the following lines to the class PatientData (gnuhealth.patient) > so > > that they are related > > > > z_medical_history = fields.One2Many( > > 'gnuhealth.z_medical_history', > > 'Z_MedicalHistory', 'Patient Medical History', help='Enter the > > Patient Medical History' > > ' for the patient.') > > AFAIS the One2Many definition should be: > > z_medical_history = fields.One2Many( > 'gnuhealth.z_medical_history', > 'patient', 'Patient Medical History', help='Enter the Patient > Medical History' > ' for the patient.') > > Note the second parameter must be the name of the Many2One field of > the related model. > > > > > > > > > The problem is that there is another class call PatientEvaluation where > I > > need to hace access and view Z_MedicalHistory using the patient field of > > PatientEvaluation. Tried the following but it's not working: > > > > z_medical_history = fields.Many2Many('gnuhealth.z_medical_history', > > 'patient', None, 'Historial Medico del Paciente', > > domain=[('patient', '=', Eval('patient'))], > > depends=['patient']) > > If you need to access the information of z_medial_history from another > model either you link it directly or you create a Function field. I > guess the latter is what you're looking for. So you need something > like this: > > z_medical_history = > fields.Function(fields.Many2Many('gnuhealth.z_medical_history', > None, None, 'Historial Medico del Paciente'), > 'get_z_medial_history') > > > > > > I guess I'm not doing it right. :( > > > > Thanks it advanced! > > > > > > -- > > You received this message because you are subscribed to the Google > Groups > > "tryton-dev" group. > > To view this discussion on the web visit > > > https://groups.google.com/d/msgid/tryton-dev/5e9dceb7-28d3-4dc1-be43-61b5834cf895%40googlegroups.com. > > > > > > -- > Albert Cervera i Areny > http://www.NaN-tic.com > Tel. 93 553 18 03 > -- You received this message because you are subscribed to the Google Groups "tryton-dev" group. To view this discussion on the web visit https://groups.google.com/d/msgid/tryton-dev/27fea2b4-79d6-4019-a477-3f1dbf17d8d2%40googlegroups.com.