您不能真正提供足夠的信息讓我知道每個模型之間的確切關係,但這裏有一個總體思路。
是否用ir_model_data表來實現many2one關係?
該Many2one
關係管理與foreign key。因此,在HrExpenseSheet
型號上,它將account_move_id
作爲ID存儲。如果您希望直接從數據庫獲得AccountMove
信息,則必須在account_move
中搜索該給定ID。
假設模型相關的是這樣的:
class AccountMove(models.Model):
_inherit = "account.move"
...
class HrExpense(models.Model):
_inherit = "hr.expense"
...
class HrExpenseSheet(models.Model):
_inherit = "hr.expense.sheet"
account_move_id = fields.Many2one('account.move', string='Journal Entry', copy=False)
expense_id = fields.Many2one('hr.expense', string='Expense', copy=False)
基本上,你會運行查詢是要找到屬於一個給定的費用,對任何行中的所有帳戶移動。
SELECT * FROM account_move WHERE id IN (
SELECT account_move_id FROM hr_expense_sheet WHERE expense_id = 123);
如果你只是想找到一個特定HrExpenseSheet
,你可以使用:
SELECT * FROM account_move WHERE id = 123;
我發現account_move_id作爲一個列的表,因此SQL應用實行的是你建議之一。 –