Skip to Content
Меню
Вам необхідно зареєструватися, щоб взаємодіяти зі спільнотою.
Це запитання позначене
6 Відповіді
19800 Переглядів

I'm trying to create a module that will do some stuff on install. As I understand it, I need to create a model with an init method and place my code there. This is what I have so far;

class geo_subdivision(models.Model):
    _name = 'geo_subdivision.geo_subdivision'
    def init(self,cr):
        res_country = self.env['res.country']

I'm getting;

AttributeError: 'geo_subdivision.geo_subdivision' object has no attribute 'env'

Google has turned up a lot of conflicting information and trying everything suggested elsewhere has gotten me nowhere.

If my appraoch correct? Is this even the correct method to use for my purpose?


Аватар
Відмінити
Автор

I should mention; I'm on Odoo 9.

Автор

@Bharat;

Tried your suggestion.

I get;

ImportError: cannot import name models

Changing back to my original import;

from openerp import models, fields, api

I get;

AttributeError: 'module' object has no attribute 'model_cr'

i updated my answer that's same as yours and it is works for me well.

Автор

Using exactly what you have below gives me;

AttributeError: 'geo_subdivision.geo_subdivision' object has no attribute 'env'

Basically, back to what I started with.

Автор

I did finally figure this out and the answer was as Yousif has posted. Unfortunately the site won't allow me to post answers, so I could post my findings.

Найкраща відповідь

hello ,

if you want to call function when install the module you can try this method :

from openerp import models
class geo_subdivision(models.Model):
     _name = 'geo_subdivision.geo_subdivision'
 
def myfunction(self):
         res_country = self.env['res.country']


<openerp>  
<data>
  
 <function model="geo_subdivision.geo_subdivision" name="myfunction"/>
</data>
</openerp>




Аватар
Відмінити

one thing this function will be called even when you upgrade the module

yes , it will be called when you install/upgrade the modules.

Найкраща відповідь

i think you need to try like this,

from openerp import models
class geo_subdivision(models.Model):
     _name = 'geo_subdivision.geo_subdivision'
     
     def init(self,cr):
         res_country = self.env['res.country']

 

I hope this will help you.

Аватар
Відмінити
Related Posts Відповіді Переглядів Дія
2
вер. 24
44
2
серп. 24
1342
2
серп. 22
26438
0
груд. 23
17
1
квіт. 24
7265