Odoo 11 - печать и регистрация звонков таинственно ничего не делают - PullRequest
0 голосов
/ 09 мая 2019

У меня есть следующий код, который должен печатать и регистрировать вещи при работе на сервере 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>


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...