0

I am trying to pass a many2one field to another database. Right now my program is using xmlrpc to get into a database and fetch data from a table called product.template and then creates a csv. The field that I want to pass returns "[54, 'PARTS / COST']" along with the other fields. I only need the 54 which is the id. Any idea where to intercept this issue or how to solve it? this are the two methods that I got so far.

def FetchProducts(self):
    products = self.odoo_object.execute_kw(
        self.db,
        self.uid,
        self.password,
        'product.template',
        'search_read',
        [[['sale_ok', '=', True], ['purchase_ok', '=', True]]],
        {'fields': ['id', 'name', 'sale_ok', 'purchase_ok', 'type', 'default_code', 'barcode', 'list_price', 'standard_price', 'categ_id'], 'limit': 1}
    )
    return products
def ProductsCSV(self,products):
    csv_columns = ['id', 'name', 'sale_ok', 'purchase_ok', 'type', 'default_code', 'barcode', 'list_price', 'standard_price', 'categ_id']
    csv_file = "Products.csv"
    try:
        with open(csv_file, 'w', encoding='utf-8', newline='') as csvfile:
            writer = csv.DictWriter(csvfile, csv_columns, delimiter=',')
            writer.writeheader()
            for data in products:
                writer.writerow(data)
                print("Writing Products " + str(data))
    except IOError:
        print("I/O error")

1 Answers1

0

I think you have problem in this line:-

--> with open(csv_file, 'w', encoding='utf-8', newline='') as csvfile:

so in my opinion please remove the arguments :- encoding and newline.

I run your code with project module it's perfectly worked.

Saumil gauswami
  • 665
  • 5
  • 16