openerp odoo v11.0 неверное название модели ошибка - PullRequest
0 голосов
/ 27 апреля 2018

я пытаюсь построить модуль odoo с именем kroshu для управления запасами я написал необходимые модели и мнения после того, как я пытаюсь установить мой модуль, сервер odoo показывает это сообщение

  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\base\ir  \ir_actions.py", line 128, in _check_model
  raise ValidationError(_('Invalid model name %r in action definition.')  % action.res_model)
   odoo.tools.convert.ParseError: "Invalid model name 'kroshu.product' in  action definition.
    None" while parsing file:/c:/program%20files%20(x86)/odoo%2011.0/server/odoo/addons/kroshu_khalil_kasmi/data/actions.xml:5, near
<record model="ir.actions.act_window" id="action_kroshu_product">
       <field name="name">Product</field>
       <field name="res_model">kroshu.product</field>
       <field name="view_mode">tree,form</field>
    </record>

мой модуль называется Product.py:

from odoo import models,fields

class Product(models.Model):
    _name = 'kroshu.product'

    product_id = fields.Char("product id",required =True)
    product_name = fields.Char("product name",required = True)
    product_description = fields.text("product description")

    product_type =  fields.One2many("product.type","product_type_id",string="type")
    product_category = fields.One2many("product.category","product_category_id",string="category")

    quantity_on_hand = fields.Integer("quantity on hand",required =True)
    forcasted_quantity = fields.Integer("forcasted quantity")

    location_in_stock = fields.Char("product location in stock")

    barcode = fields.text("barcode")

    vendor = fields.One2many("product.vendor","vendor_id",string="vendor/manufacturer")

    cost = fields.Float("cost")

    stock = fields.One2many("kroshu.stock","stock_id",string="in stock")

мой файл action_views.xml:

<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<menuitem name="Kroshu" id="kroshu_root_menu"/>

<record model="ir.actions.act_window" id="action_kroshu_product">
    <field name="name">Product</field>
    <field name="res_model">kroshu.product</field>
    <field name="view_mode">tree,form</field>
</record>

<record model="ir.actions.act_window" id="action_kroshu_product_category">
    <field name="name">Product Category</field>
    <field name="res_model">product.category</field>
    <field name="view_mode">tree,form</field>
</record>
........ still more lines

my __ init __ .py file:

from . import category
from . import product

Ответы [ 3 ]

0 голосов
/ 18 августа 2018

В определении модели есть ошибка:

barcode = fields.text("barcode")

вместо:

barcode = fields.Text("barcode")

измените текст на текст, и ваш код станет красивым.

Второе решение: попробуйте переименовать название вашей модели, измените

_name = 'kroshu.product'

например, например:

_name = 'kroshuproduct'

Odoo обычно использует это выражение, чтобы указать, что модель product находится внутри имени модуля de kroshup , например.

Эта ошибка чаще всего возникает, когда у вас есть и ошибка внутри вашей модели определение. чтобы обнаружить ошибку, прокомментируйте все поля и протестируйте каждый только поля.

Надеюсь, это поможет вам! Отлично!

0 голосов
/ 18 августа 2018

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

В вашем случае сначала создайте одну модель с одним полем (например, name) и заставьте ее работать. Затем добавьте более простые поля, представление и действие. Убедитесь, что вы можете создавать записи для своей новой модели.

Затем, добавляя реляционные поля, обязательно включите зависимости в файл манифеста, где находятся целевые модели (в вашем случае, product для product. product и т. Д.)

Наконец, убедитесь, что ваша вторая модель kroshu.stock тоже должна существовать, следуя той же методологии.

0 голосов
/ 27 апреля 2018

Из того, что вы сказали выше. Вероятно, проблема в том, что в вашем файле __init__.py вы импортируете product, однако файл называется Product.py. Я также не уверен относительно отступа в Product.py, однако это может быть просто форматированием того, что было скопировано и вставлено в переполнение стека.

...