У меня есть следующий код, который должен печатать и регистрировать вещи при работе на сервере Odoo-11, но код этого не делает. Вот где вы входите. Мне нужен кто-то, кто скажет мне, что не так с моим кодом и почему не работают операторы print и logging. Я заметил, что создается пустой файл журнала, но внутри указанного файла журнала ничего нет. Я использую ОС Windows 7 Professional. Я ожидал найти оператор печати в файле odoo.log. Я попытался изменить уровень журнала, но я думаю, что в DEBUG, текущем уровне, все будет напечатано независимо от серьезности: info
или debug
или error
. Файл журнала, который я наблюдаю, чтобы увидеть оператор печати, находится в операционной системе (ОС) по следующему пути: C:\Program Files (x86)\Odoo 11.0\server\odoo.log
У меня следующий код. Видя вид, я думаю, что это неважно. Я добавил вид в редактировании. 0_o Код вызывается простым нажатием кнопки. Я проверил, что нажатие кнопки работает с некоторыми Python-подобными так:
with open('file', 'w') as f:
f.write('hi')
Это записывает на мой диск вне odoo.log или журнала, который я создал с помощью модуля logging
при нажатии кнопки. Я удалил этот код из рассматриваемого метода print_name()
в приведенном ниже коде. Мне любопытно, почему звонки print()
и logging.debug()
не работают.
# -*- coding: utf-8 -*-
from odoo import models, fields, api
import logging
logger = logging.getLogger('roll-your-own-odoo-logger')
file_handler = logging.FileHandler('C:\\Users\\username\\Desktop\\odoo-python.log')
file_handler.setLevel(logging.DEBUG)
f_format = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(f_format)
logger.addHandler(file_handler)
class PhoneBook(models.Model):
_name = 'phone.book'
_description = 'This is a phone book.'
name = fields.Char(string="Name", required=True)
def print_name(self):
""" This will print stuff - nothing fancy """
logger.info("Name of record: %s" % self.name)
print("Name of record: %s" % self.name)
return True
Вид выглядит следующим образом:
<odoo>
<data>
<!-- LIST VIEW -->
<record id="phone_book_view_tree" model="ir.ui.view">
<field name="name"> All Phonebook Records</field>
<field name="model">phone.book</field>
<field name="arch" type="xml">
<tree>
<field name="name" />
</tree>
</field>
</record>
<!-- record for the "ir.action.act_window" -->
<record id="action_records_form" model="ir.actions.act_window">
<field name="name">Phonebook Records</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">phone.book</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<!-- record for the "ir.actions.act_window" -->
<!--menu point -->
<menuitem id="menu records" name="Phonebook Records" sequence="22" />
<!-- action for the menu point -->
<menuitem action="action_records_form" id="menu_action_recs"
parent="menu records" sequence="10" />
<!--Create a Form View for "phone.book" model -->
<record id="view_calls_form" model="ir.ui.view">
<field name="name">Phonebook Record</field>
<field name="model">phone.book</field>
<field name="arch" type="xml">
<form>
<sheet>
<group name="group_top">
<group name="group_left">
<!-- add a button -->
<button name="print_name" string="Print" type="object"/>
<field name="name" />
</group>
</group>
</sheet>
</form>
</field>
</record>
</data>
</odoo>