콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
1 회신
1859 화면

i want write a script that when i select table name the related column name of the table is show in the drop down in odoo.. here is my code..

table_name = fields.Selection( [('res_partner', 'Contacts'), ('res_company', 'Companies')], string='Table Name', tracking=True, required=True)

column_name = fields.Selection([], string='Column Name')

@api.model
def get_column_names(self, table_name):

query = """
       SELECT column_name
       FROM information_schema.columns
       WHERE table_name = %s
   """
self.env.cr.execute(query, [table_name])
result = self.env.cr.fetchall()
return [(row[0], row[0]) for row in result]


@api.onchange('table_name')
def onchange_table_name(self):
if self.table_name:
    column_names = self.get_column_names(self.table_name)
    columnlist = [(name[0], name[1]) for name in column_names]
    self.column_name.selection = columnlist
    

i am getting following error..

self.column_name.selection = [] AttributeError: 'bool' object has no attribute 'selection'

how to solve this error..

아바타
취소
베스트 답변

Hi,

You can try using Reference Field in Odoo, which helps you to show data from the records based on model selection.

Sample:

action = fields.Reference(selection=[('ir.actions.report', 'ir.actions.report'),
('ir.actions.act_window', 'ir.actions.act_window'),
('ir.actions.act_url', 'ir.actions.act_url'),
('ir.actions.server', 'ir.actions.server'),
('ir.actions.client', 'ir.actions.client')])


See: Working of reference field in Odoo


Thanks

아바타
취소
관련 게시물 답글 화면 활동
2
5월 24
1035
1
6월 23
1507
1
5월 23
4769
3
2월 23
4501
2
3월 15
5155