Я установил надстройку oemedical в свой OperaERP 7. Я добавляю в нее некоторые модификации. У меня проблема с функцией _get_ssn_from_name, которую я создал в модуле назначения, которая получает SSN из класса oemedical.patient для отображения в oemedical. просмотр встречи.
Вот код класса oemedical.appointment, содержащий функцию, которую я разработал
class OeMedicalAppointment(osv.Model):
_name = 'oemedical.appointment'
# The function causing the problem
def _get_ssn_from_name(self, cr, uid, ids, field_name, arg, context=None):
res = {}
ssn = ''
for record in self.pool.get('oemedical.patient').browse(cr, uid, ids, context=context):
# When patient is not yet specified
if not record.lastname:
ssn = 'No Patient Specified!'
# Return the ssn when the caller is the field name
if field_name == 'alias':
if record.ssn:
ssn = record.ssn
else:
ssn = "Not Specified"
print("ssn : %s" % ssn)
res[record.id] = ssn
return res
_columns = {
'patient_id': fields.many2one('oemedical.patient', string='Patient',
required=True, select=True,
help='Patient Name'),
'name': fields.char(size=256, string='Appointment ID', readonly=True),
'appointment_date': fields.datetime(string='Date and Time'),
'appointment_day': fields.date(string='Date'),
# some other attributes
'alias': fields.function(_get_ssn_from_name, type='char', string='SSN', help="Social Security Number", multi=False),
# other attributes
}
OeMedicalAppointment()
А вот и код класса oemedical.patient
class OeMedicalPatient(osv.Model):
_name='oemedical.patient'
_inherits={
'res.partner': 'partner_id',
}
_columns={
'partner_id': fields.many2one(
'res.partner', 'Related Partner', required=True,
ondelete='cascade', help='Partner-related data of the patient'),
'first_name': fields.char(size=256, string='Name', required=True),
'lastname': fields.char(size=256, string='Lastname', required=True),
# many other attributes..
'ssn': fields.char(size=256, string='SSN'),
# some other attributes..
'deceased': fields.boolean(string='Deceased'),
}
OeMedicalPatient()
Вот интерфейс создания новой встречи: Интерфейс добавления новой встречи
Когда я создаю нового пациента в форме создания записи (поле, где я могу выбрать пациента на скриншоте), я не получаю ошибку, и все идет хорошо, но когда я пытаюсь создать встречу для существующего пациента, я получить следующую ошибку:
AttributeError: 'Field lastname not found in browse_record(oemedical.patient, 8)'
Пожалуйста, помогите мне, и спасибо заранее!!