Skip to Content
Meniu
Trebuie să fiți înregistrat pentru a interacționa cu comunitatea.
Această întrebare a fost marcată
3 Răspunsuri
9999 Vizualizări

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?

Imagine profil
Abandonează
Cel mai bun răspuns

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

Imagine profil
Abandonează
Autor

Thanks, it makes sense once explained

Cel mai bun răspuns

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


Imagine profil
Abandonează

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

Related Posts Răspunsuri Vizualizări Activitate
0
oct. 19
4213
7
iul. 19
41650
2
ian. 25
1028
1
feb. 23
7279
2
aug. 18
11539