在我的学生模块中,我继承了res.partner.如果合作伙伴是学生,我想限制在合作伙伴视图中修改名称.这是我的电话.
from openerp.osv import osv, fields
class res_partner(osv.Model):
_inherit = 'res.partner'
_columns = {
'name': fields.char('Name', size=250, required=True, select=True),
'is_student': fields.boolean('Student', readonly=True),
}
def write(self, cr, uid, ids, vals, context=None):
stud = self.browse(cr, uid, ids, context=context)[0]
if ('name' in vals) & (stud.is_student is True):
raise "Cannot Edit"
else:
return super(res_partner, self).write(cr, uid, ids, vals, context=context)
Run Code Online (Sandbox Code Playgroud)
它工作,但我想在消息框中显示错误消息.不例外.我怎么能这样做?
我想在我的模块中加载与讲师id相关的主题ID.我使用api onchange如下.
@api.onchange('lecturer_id')
def _onchange_lecturer(self):
if self.lecturer_id:
sub_id =[]
a = []
lecturer = self.lecturer_id.id
query = """select op_subject_id from lecturer_subject_rel where op_lecturer_id='%s'""" % lecturer
self.env.cr.execute(query)
a = self.env.cr.fetchall()
d = 0
for i in a:
e = i[0]
sub_id.append(e)
d += 1
return [('subject_id', 'in', sub_id)]
else:
return None
Run Code Online (Sandbox Code Playgroud)
和我的领域的域名.
<field name="subject_id" domain=_onchange_lecturer />
Run Code Online (Sandbox Code Playgroud)
正确的主题ID列表传递.如何根据这些id列表加载主题....?