Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
3 Trả lời
9994 Lượt xem

In a custom module, if you want to define model FOOBAR  you just write the code in foobar.py and include

from . import foobar 

in __init__.py

So far, so good.

I want to move my foobar.py to folder models. What shoud be included in __init__.py to reflect the fact that foobar.py is in "models" folder?

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

your models need to be a python package so it needs a __init__.py with the foobar.py import inside, and in the module root you import the models package. this is the structure:

module_root

----models

--------__init__.py               #import foobar

--------foobar.py
----__init__.py                    #import models
----__openerp__.py

Ảnh đại diện
Huỷ bỏ
Tác giả

Thanks, it makes sense once explained

Câu trả lời hay nhất

This has been working for me in v10 and v11 but now in v12 is not working and i am looking for ideas. Exact same case.


My module files are listed  like folows:

-module folder

-- __init__.py

from . import models

--models

--- __init__.py

from . import myfile

---myfile.py


Ảnh đại diện
Huỷ bỏ

In Odoo newer versions there are some small changes, like:

__openerp__.py was renamed into __manifest__.py

Due to the usage of Python 3 some imports need to be done against the local package like:

from . import models

from . import foobar

Otherwise Python 3 will try to look for an installed library

Bài viết liên quan Trả lời Lượt xem Hoạt động
0
thg 10 19
4209
7
thg 7 19
41641
2
thg 1 25
1021
1
thg 2 23
7272
2
thg 8 18
11538