我需要創建many2one領域,但它應該需要根據我的邏輯函數過濾數據。它應該是selectbox也。然後如何在OpenERP版本7中實現?Many2one領域與我們自己的功能在openerp
我試着用下面的代碼。但它沒有列出,我需要。它只是加載模型中的所有值。我需要選擇框的第一個值應該被默認選中。
def _sel_proj(self, cr, uid,context=None):
cr.execute("""SELECT project.id,account.name FROM project_project project
LEFT JOIN account_analytic_account account ON account.id = project.analytic_account_id
LEFT JOIN project_user_rel rel ON rel.project_id = project.id
WHERE (account.user_id = %s or rel.uid = %s) GROUP BY project.id,account.name"""%(uid, uid))
return [(r[0],r[1]) for r in cr.fetchall()]
_name = 'mat.mgmt'
_columns = {'project_id':fields.many2one('project.project','Project',selection=_sel_proj,select=True,required=True),}
但在我的功能我正在加入三個表,其中兩個含有的用戶,我可以創造上述查詢域名嗎? –
是的,你可以創建!是否有任何項目與project_user_rel的關係我的意思是從項目類,你可以訪問它嗎?我爲分析帳戶做了同樣的分析,因爲我可以發現analytic_account_id是項目中的many2one,但它是來自項目的project_user_rel的任何內容,因此您可以訪問它? –
是項目表包含所有項目和分析帳戶表包含相應的項目經理和project_user_rel包含項目成員這是邏輯,在選擇框中我想顯示特定項目成員的所有項目(它可能是項目經理或項目('user') –