Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
1 Trả lời
2937 Lượt xem

Hi there, I'm fairly new to odoo14 and I am getting this error while trying to build a new custom report.


ValueError: External ID not found in the system: account.account_tag_operating_activities

So, I created two new xml files with the respective menu and the respective tags to use, both .xml files are references in the manifest.py:

This is where the menu xml file:
xml version="1.0" encoding="utf-8"?>



id="action_report_indirect_cash_flow" model="ir.actions.client">
name="name">indirect cash flow
name="tag">account_report
name="context" eval="{'model': 'account.cash.flow.report.indirect'}"/>




id="menu_action_reports_indirect_cash_flow"
name="indirect cash flow"
action="action_report_indirect_cash_flow"
parent="account.account_reports_legal_statements_menu"
groups="account.group_account_readonly"
/>


This is the tags file:

xml version="1.0" encoding="utf-8"?>

noupdate="1">


id="account_tag_operating_activities" model="account.account.tag">
name="name">Cash Generated From Operations
name="applicability">accounts


id="account_tag_operational_free_cash" model="account.account.tag">
name="name">Free cash flow from operations
name="applicability">accounts


id="account_tag_non_operational_cash" model="account.account.tag">
name="name">Non operational cash flow
name="applicability">accounts




Here is the custom model that I'm building:


# -*- coding: utf-8 -*-
from odoo import models, fields, api, _


class AccountCashFlowReportIndirect(models.AbstractModel):
_name = 'account.cash.flow.report.indirect'
_description = 'Cash Flow Report'
_inherit = 'account.report'

filter_date = {'mode': 'range', 'filter': 'today'}
filter_comparison = None
filter_journals = True
filter_unfold_all = False
filter_all_entries = False

@api.model
def _get_tags_per_account(self, tag_ids):

tags_per_accounts = {}

query = '''
SELECT
DISTINCT account_account_id,
ARRAY_AGG(account_account_tag_id)
FROM account_account_account_tag
WHERE account_account_tag_id IN %s
GROUP BY account_account_id
'''
params = [tag_ids]

self._cr.execute(query, params)
for account_id, tags in self._cr.fetchall():
tags_per_accounts[account_id] = tags
return tags_per_accounts

@api.model
def _get_lines(self, options, line_id=None):
tag_operations = self.env.ref('account.account_tag_operating_activities').id
# tag_operational_free_cash = self.env.ref('account.account_tag_operational_free_cash').id
# tag_non_operational_cash = self.env.ref('account_tag_non_operational_cash').id
# tag_ids = (tag_operations, tag_operational_free_cash, tag_non_operational_cash)
# result = self._get_tags_per_account(tag_ids)
print(tag_operations)


So, my error is when I'm trying to get the id of any of the created tags I get the

ValueError: External ID not found in the system.


Any suggestion or idea on what I might be doing wrong? When I check the table accounts_accounts_tags I can see the tags that I've created, the same when I check ir_model_data table in my local database.


Any response is kindly appreciated.






Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Hi,

In the python code, it seems you are looking for a record with external id: account.account_tag_operating_activities, but i think the record with id account_tag_operating_activities is created in the custom module right ?


If yes, please update the above code to your_module_name.account_tag_operating_activities instead of account.account_tag_operating_activities.


Thanks

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 5 24
3539
2
thg 5 23
4808
2
thg 1 23
11948
1
thg 5 16
3604
1
thg 11 22
3624