Почему при попытке установить модуль появляется ошибка «модель не найдена: product.print.zpl.barcode»? - PullRequest
0 голосов
/ 10 мая 2018

Я хочу установить свой пользовательский модуль product_print_zpl_barcode, но когда я нажимаю кнопку «Установить», он показывает эту ошибку:

ParseError: "Invalid view definition

D\xe9tails de l'erreur :
Mod\xe8le non trouv\xe9 : product.print.zpl.barcode

Contexte de l'erreur :
Vue `product_print_zpl_barcode.form`
[view_id: 847, xml_id: n/a, model: product.print.zpl.barcode, parent_id: n/a]
None" while parsing [...]/openerp/addons/product_print_zpl_barcode/views/product_print_zpl_barcode_view.xml:5, near

product_print_zpl_barcode_view.xml

<record id="product_print_zpl_barcode_form" model="ir.ui.view">
    <field name="name">product_print_zpl_barcode.form</field>
    <field name="model">product.print.zpl.barcode</field>
    <field name="arch" type="xml">
        <form string="Generate and Print Product Barcode">
            <group name="step1" string="Configuration">
                <field name="state" invisible="1"/>
                <field name="currency_id" invisible="1"/>
                <field name="product_id"/>
                <field name="product_name" attrs="{'readonly': [('state', '=', 'step2')]}"/>
                <field name="pricelist_id" attrs="{'readonly': [('state', '=', 'step2')]}"/>
                <field name="price_uom"/>
                <field name="label_size" attrs="{'readonly': [('state', '=', 'step2')]}"/>
                <field name="nomenclature_id" attrs="{'readonly': [('state', '=', 'step2')]}"/>
                <field name="rule_id"/>
                <field name="barcode_type"/>
                <field name="barcode"/>
                <field name="copies" attrs="{'readonly': [('state', '=', 'step2')]}"/>
            </group>
            <group string="Enter Quantity" attrs="{'invisible': [('barcode_type', '=', 'product')]}">
                <div name="qty_uom">
                    <field name="quantity" attrs="{'readonly': [('state', '=', 'step2')]}" class="oe_inline"/>
                    <field name="uom_id" class="oe_inline"/>
                </div>
            </group>
            <group name="step2" states="step2" string="Label">
                <field name="price"/>
                <field name="zpl_file" filename="zpl_filename"/>
                <field name="zpl_filename" invisible="1"/>
                <field name="zpl_printer_id" required="1"/>
            </group>
            <footer>
                <button name="generate" type="object" string="Generate Label" class="btn-primary" states="step1"/>
                <button special="cancel" string="Cancel" class="oe_link" states="step1"/>
                <button name="print_zpl" type="object" string="Print" class="btn-primary" states="step2"/>
                <button name="print_zpl" type="object" string="Print and New" class="btn-primary" context="{'print_and_new': True}" attrs="{'invisible': ['|', ('state', '!=', 'step2'), ('barcode_type', '=', 'product')]}"/>
                <button special="cancel" string="Close" class="oe_link" states="step2"/>
            </footer>
        </form>
    </field>
</record>

<record id="product_print_zpl_barcode_action" model="ir.actions.act_window">
    <field name="name">Generate Barcode</field>
    <field name="res_model">product.print.zpl.barcode</field>
    <field name="view_mode">form</field>
    <field name="target">new</field>
</record>

Я хочу создать новую модель product.print.zpl.barcode, но Odoo не распознает новую модель, даже если действие создано. Вот код

1 Ответ

0 голосов
/ 11 мая 2018

Поэтому убедитесь, что вы добавляете модель правильным способом .Вы должны принять во внимание

  • Включить это в /your_module/__init__.py

    import models
    
  • Включить это в /your_module/models/__init__.py

    import model_name
    
  • Включите вашу модель в файл /your_module/models/model_name.py:

    from openerp import models, fields
    
    
    class YourModel(models.Model):
        _name = 'a.model.name'
    
        field1 = fields.Char()
    
  • Для перезагрузки файлов Python вам необходимо перезагрузить сервер

  • Чтобы перезагрузить XML-файлы, вам необходимо перезапустить службу с параметром --update=your_module.Это обновление можно выполнить, нажав кнопку Обновление в форме модуля.

Примечание : примите это, если вы наследуете от класса models.TransientModelданные вашей таблицы будут время от времени стираться.Общее использование на волшебниках.Если вы хотите постоянную модель, вам нужно наследовать от models.Model

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